Freigeben über


IOCTL_INTERNAL_USBFN_GET_INTERFACE_DESCRIPTOR_SET IOCTL (usbfnioctl.h)

Der Klassentreiber sendet diese Anforderung, um den gesamten USB-Schnittstellendeskriptor für eine Funktion auf dem Gerät abzurufen.

Hinweis Verwenden Sie diese Anforderung nicht, um den Schnittstellendeskriptor für das gesamte Gerät abzurufen.
 

Hauptcode

IRP_MJ_INTERNAL_DEVICE_CONTROL

Eingabepuffer

Ein Zeiger auf einen Puffer, der eine USBFN_INTERFACE_INFO Struktur enthält.

Eingabepufferlänge

Die Länge des Eingabepuffers muss mindestens sizeof(USBFN_INTERFACE_INFO)sein.

Ausgabepuffer

Ein Zeiger auf einen Puffer, der eine USBFN_INTERFACE_INFO Struktur enthält. Die USB-Funktionsklassenerweiterung (UFX) füllt die Struktur mit dem gesamten Satz der Schnittstellendeskriptor einschließlich der Endpunktdeskriptoren auf.

Länge des Ausgabepuffers

Die Länge des Ausgabepuffers muss mindestens sizeof(USBFN_INTERFACE_INFO)sein.

Statusblock

Wenn die Anforderung erfolgreich ist, gibt die USB-Funktionsklassenerweiterung (UFX) STATUS_SUCCESS oder einen anderen Statuswert zurück, für den NT_SUCCESS(Status) GLEICH TRUE ist. Andernfalls wird ein Statuswert zurückgegeben, für den NT_SUCCESS(Status) GLEICH FALSE ist.

Bemerkungen

Diese Anforderung muss nach dem Senden der IOCTL_INTERNAL_USBFN_ACTIVATE_USB_BUS Anforderung gesendet werden.

Die Länge des gesamten Schnittstellendeskriptors ist variabel. Der Klassentreiber muss diese IOCTL-Anforderung möglicherweise zweimal senden, um den gesamten Deskriptorsatz abzurufen.

Wenn die Länge des gesamten Deskriptorsatzes größer als die angegebene Ausgabepufferlänge ist, legt UFX den Size Member von USBFN_INTERFACE_INFO auf die tatsächliche Pufferlänge fest und schlägt die Anforderung mit STATUS_BUFFER_TOO_SMALL fehl. Der Treiber muss dann einen Ausgabepuffer der Länge zugeordnet werden, der durch Size angegeben wird, und die Anforderung erneut senden.

Anforderungen

Anforderung Wert
Header- usbfnioctl.h

Siehe auch

IOCTL_INTERNAL_USBFN_ACTIVATE_USB_BUS

USBFN_INTERFACE_INFO