Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The UsbBuildGetDescriptorRequest macro formats an URB with the parameters necessary to obtain descriptor information from the host controller driver (HCD).
Syntax
void UsbBuildGetDescriptorRequest(
[in, out] PURB Urb,
[in] USHORT Length,
[in] UCHAR DescriptorType,
[in] UCHAR Index,
[in] USHORT LanguageId,
[in, optional] PVOID TransferBuffer,
[in, optional] PMDL TransferBufferMDL,
[in] ULONG TransferBufferLength,
[in] PURB Link
);
Parameters
Urb [in, out]
Pointer to an URB to be formatted for a get descriptor request to the HCD. The caller must allocate nonpaged pool for this URB.Length [in]
Specifies the size, in bytes, of the URB.DescriptorType [in]
Specifies one of the following values:USB_DEVICE_DESCRIPTOR_TYPE
USB_CONFIGURATION_DESCRIPTOR_TYPE
USB_STRING_DESCRIPTOR_TYPE
Index [in]
Specifies the device-defined index of the descriptor that is to be retrieved.
LanguageId [in]
Specifies the language ID of the descriptor to be retrieved when USB_STRING_DESCRIPTOR_TYPE is set in DescriptorType. This parameter must be zero for any other value in DescriptorType.
TransferBuffer [in, optional]
Pointer to a resident buffer to receive the descriptor data or is NULL if an MDL is supplied in TransferBufferMDL.
TransferBufferMDL [in, optional]
Pointer to an MDL that describes a resident buffer to receive the descriptor data or is NULL if a buffer is supplied in TransferBuffer.
TransferBufferLength [in]
Specifies the length of the buffer specified in TransferBuffer or described in TransferBufferMDL.
Link [in]
Reserved. Must be set to NULL.
Return value
This macro does not return a value.
Remarks
This macro is defined in usblib.h. When USB_CONFIGURATION_DESCRIPTOR_TYPE is specified for DescriptorType, all interface, endpoint, class-specific, and vendor-specific descriptors for the configuration also are retrieved. The caller must allocate a buffer large enough to hold all of this information or the data is truncated without error.
Requirements
Target platform |
Desktop |
Header |
Usbdlib.h (include Usbdlib.h) |
See also
USB device driver programming reference