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 festzulegen.
Hauptcode
IRP_MJ_INTERNAL_DEVICE_CONTROL
Eingabepuffer
Ein Zeiger auf einen Puffer, der eine USBFN_INTERFACE_INFO-Struktur enthält.
Länge des Eingabepuffers
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 Schnittstellendeskriptor auf, der einschließlich der Endpunktdeskriptoren festgelegt ist.
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 status Wert zurück, für den NT_SUCCESS(status) gleich TRUE ist. Andernfalls wird ein status Wert zurückgegeben, für den NT_SUCCESS(status) gleich FALSE ist.
Hinweise
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 Deskriptor festzulegen.
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 durch Size angegebenen Ausgabepuffer der Länge zuweisen und die Anforderung erneut senden.
Anforderungen
Anforderung | Wert |
---|---|
Header | usbfnioctl.h |