DMDLL_USBGetDescriptor_LL
해당하는 USB장치에 대한 다양한 디스크립터정보를 구한다 ppDescriptor 파라미터의 값은 DMCORE가 제공하는 메모리의 주소가 담겨진다.
Description
int DMDLL_USBGetDescriptor_LL(
IN DMHANDLE MasterHandle,
IN UCHAR DescriptorType,
IN UCHAR Index,
IN USHORT LanguageId,
IN int Length,
OUT PUSB_COMMON_DESCRIPTOR *ppDesciptor
)
Parameters
MasterHandle
작업중이던 디바이스 핸들, DMDLL_OpenDeviceForInterfaceDeviceStack( PipeNumber = -1 )함수를 통해서 얻은 핸들(Master)이어야 한다
DescriptorType
USB 표준스팩에서 정의한 값. 얻고자 하는 디스크립터의 유형(usb100.h)
#define USB_DEVICE_DESCRIPTOR_TYPE 0x01
#define USB_CONFIGURATION_DESCRIPTOR_TYPE 0x02
#define USB_STRING_DESCRIPTOR_TYPE 0x03
#define USB_INTERFACE_DESCRIPTOR_TYPE 0x04
#define USB_ENDPOINT_DESCRIPTOR_TYPE 0x05
#define USB_RESERVED_DESCRIPTOR_TYPE 0x06
#define USB_CONFIG_POWER_DESCRIPTOR_TYPE 0x07
#define USB_INTERFACE_POWER_DESCRIPTOR_TYPE 0x08
Index
USB 표준스팩에서 정의한 값.
LanguageId
USB 표준스팩에서 정의한 값. String Descriptor의 언어구분 ID.
Length
구하고자 하는 디스크립터의 길이(바이트)
ppDescriptor
구해진 디스크립터정보가 담겨진 메모리주소가 리턴된다(usb100.h)
개발자는 이후에 더이상 이 메모리가 사용될 필요가 없을때는 반드시 해당하는 메모리를 해제해야 한다(DMDLL_USBReleaseResources)
Return Values
return int
작업이 성공할 경우 DMSTAT_SUCCESS 리턴
Changelog
Examples
int nRet = 0;
PUSB_COMMON_DESCRIPTOR pCommonDescriptor = 0;
nRet = DMDLL_USBGetDescriptor_LL(MasterHandle, USB_DEVICE_DESCRIPTOR_TYPE, 0, 0, sizeof(USB_DEVICE_DESCRIPTOR),&pCommonDescriptor);