IWDFUsbTargetDevice::RetrieveDescriptor 메서드(wudfusb.h)
[경고: UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에는 새로운 기능이 추가되지 않으며 최신 버전의 Windows 10에서는 UMDF 1에 대한 지원이 제한되어 있습니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다. 자세한 내용은 UMDF시작 .]을 참조하세요.
RetrieveDescriptor 메서드는 디바이스, 구성 또는 문자열을 설명할 수 있는 USB 설명자를 검색합니다.
통사론
HRESULT RetrieveDescriptor(
[in] UCHAR DescriptorType,
[in] UCHAR Index,
[in] USHORT LanguageID,
[in, out] ULONG *BufferLength,
[out] PVOID Buffer
);
매개 변수
[in] DescriptorType
반환할 설명자의 형식을 지정하는 값입니다. 이 매개 변수는 표준 디바이스 설명자의 bDescriptorType 필드에 해당하며, 해당 값은 유니버설 Serial Bus 사양에 설명되어 있습니다. 일부 언어에서는 이 리소스를 사용할 수 없습니다.
국가)를 참조하세요. 이러한 값 중 일부는 _URB_CONTROL_DESCRIPTOR_REQUEST 구조체의 DescriptorType 멤버에 대한 설명에 나열됩니다.
[in] Index
유니버설 직렬 버스 사양에 따라 설명자의 인덱스입니다. 일부 언어에서는 이 리소스를 사용할 수 없습니다.
국가)를 참조하세요.
[in] LanguageID
UMDF 드라이버가 문자열 설명자를 요청하는 경우 언어의 식별자입니다. 그렇지 않으면 이 매개 변수가 0입니다.
[in, out] BufferLength
입력 시 버퍼가 가리키는 버퍼의 크기(바이트)를 포함하는 변수에 포인터입니다. 작업이 성공하면 변수는 프레임워크가 버퍼에 복사한 바이트 수를 받습니다.
[out] Buffer
USB 설명자를 수신하는 호출자 제공 버퍼에 대한 포인터입니다. 버퍼 형식은 DescriptorType지정된 값과 일치해야 합니다.
반환 값
RetrieveDescriptor 다음 값 중 하나를 반환합니다.
반환 코드 | 묘사 |
---|---|
|
RetrieveDescriptor USB 설명자를 성공적으로 검색했습니다. |
|
RetrieveDescriptor 할당 오류가 발생했습니다. |
|
이 값은 WinUsb API가 반환한 오류 코드에 해당합니다. |
발언
UMDF 드라이버가 DescriptorType 매개 변수에 전달할 수 있는 유효한 설명자 형식에 대한 자세한 내용은 WinUsb_GetDescriptor 함수를 참조하세요.
RetrieveDescriptor 메서드는 UMDF 요청을 생성하고 I/O 대상에 요청을 동기적으로 보냅니다.
예제
다음 코드 예제에서는 USB 구성 설명자를 검색합니다.
HRESULT
CUmdfHidDevice::RetrieveConfigDescriptor(
__out_bcount(ConfigDescriptorCb) PUSB_CONFIGURATION_DESCRIPTOR *ConfigDescriptor,
__out ULONG *ConfigDescriptorCb
)
{
ULONG descriptorCb = sizeof(USB_CONFIGURATION_DESCRIPTOR);
USB_CONFIGURATION_DESCRIPTOR descriptorHeader;
PBYTE descriptorBuffer;
HRESULT hr;
//
// Get the configuration descriptor at index 0
//
hr = m_UsbTargetDevice->RetrieveDescriptor(
USB_CONFIGURATION_DESCRIPTOR_TYPE,
0,
0,
&descriptorCb,
&descriptorHeader
);
//
// Store the buffer in the output parameter, or delete it.
//
if (SUCCEEDED(hr)) {
*ConfigDescriptor = (PUSB_CONFIGURATION_DESCRIPTOR) (descriptorHeader);
*ConfigDescriptorCb = descriptorCb;
}
else {
delete[] descriptorHeader;
}
return hr;
}
요구 사항
요구 | 값 |
---|---|
지원 종료 | UMDF 2.0 이상에서는 사용할 수 없습니다. |
대상 플랫폼 | 바탕 화면 |
최소 UMDF 버전 | 1.5 |
헤더 | wudfusb.h(Wudfusb.h 포함) |
DLL | WUDFx.dll |