IOCTL_INTERNAL_USBFN_GET_INTERFACE_DESCRIPTOR_SET IOCTL (usbfnioctl.h)
The class driver sends this request to get the entire USB interface descriptor set for a function on the device.
Major code
IRP_MJ_INTERNAL_DEVICE_CONTROL
Input buffer
A pointer to a buffer that contains a USBFN_INTERFACE_INFO structure.
Input buffer length
The length of the input buffer must be at least sizeof(USBFN_INTERFACE_INFO)
.
Output buffer
A pointer to a buffer that contains a USBFN_INTERFACE_INFO structure. USB function class extension (UFX) populates the structure with the entire interface descriptor set including its endpoint descriptors.
Output buffer length
The length of the output buffer must be at least sizeof(USBFN_INTERFACE_INFO)
.
Status block
If the request is successful, the USB function class extension (UFX) returns STATUS_SUCCESS, or another status value for which NT_SUCCESS(status) equals TRUE. Otherwise it returns a status value for which NT_SUCCESS(status) equals FALSE.
Remarks
This request must be sent after sending the IOCTL_INTERNAL_USBFN_ACTIVATE_USB_BUS request.
The length of the entire interface descriptor is variable. The class driver might need to send this IOCTL request twice to get the entire descriptor set.
If the length of the entire descriptor set is greater than the specified output buffer length, UFX sets the Size member of USBFN_INTERFACE_INFO to the actual buffer length and fails the request with STATUS_BUFFER_TOO_SMALL. The driver must then allocated an output buffer of length specified by Size and resend the request.
Requirements
Requirement | Value |
---|---|
Header | usbfnioctl.h |