URB 구조체(usb.h)
URB 구조는 USB 클라이언트 드라이버에서 USB 드라이버 스택에 요청을 보내는 USB 요청 블록(URL)을 설명하는 데 사용됩니다. URB 구조는 USB 디바이스로 보낼 수 있는 가능한 모든 명령에 대한 형식을 정의합니다.
구문
typedef struct _URB {
union {
#if ...
_URB_HEADER UrbHeader;
#else
struct _URB_HEADER UrbHeader;
#endif
#if ...
_URB_SELECT_INTERFACE UrbSelectInterface;
#else
struct _URB_SELECT_INTERFACE UrbSelectInterface;
#endif
#if ...
_URB_SELECT_CONFIGURATION UrbSelectConfiguration;
#else
struct _URB_SELECT_CONFIGURATION UrbSelectConfiguration;
#endif
#if ...
_URB_PIPE_REQUEST UrbPipeRequest;
#else
struct _URB_PIPE_REQUEST UrbPipeRequest;
#endif
#if ...
_URB_FRAME_LENGTH_CONTROL UrbFrameLengthControl;
#else
struct _URB_FRAME_LENGTH_CONTROL UrbFrameLengthControl;
#endif
#if ...
_URB_GET_FRAME_LENGTH UrbGetFrameLength;
#else
struct _URB_GET_FRAME_LENGTH UrbGetFrameLength;
#endif
#if ...
_URB_SET_FRAME_LENGTH UrbSetFrameLength;
#else
struct _URB_SET_FRAME_LENGTH UrbSetFrameLength;
#endif
#if ...
_URB_GET_CURRENT_FRAME_NUMBER UrbGetCurrentFrameNumber;
#else
struct _URB_GET_CURRENT_FRAME_NUMBER UrbGetCurrentFrameNumber;
#endif
#if ...
_URB_CONTROL_TRANSFER UrbControlTransfer;
#else
struct _URB_CONTROL_TRANSFER UrbControlTransfer;
#endif
#if ...
_URB_CONTROL_TRANSFER_EX UrbControlTransferEx;
#else
struct _URB_CONTROL_TRANSFER_EX UrbControlTransferEx;
#endif
#if ...
_URB_BULK_OR_INTERRUPT_TRANSFER UrbBulkOrInterruptTransfer;
#else
struct _URB_BULK_OR_INTERRUPT_TRANSFER UrbBulkOrInterruptTransfer;
#endif
#if ...
_URB_ISOCH_TRANSFER UrbIsochronousTransfer;
#else
struct _URB_ISOCH_TRANSFER UrbIsochronousTransfer;
#endif
#if ...
_URB_CONTROL_DESCRIPTOR_REQUEST UrbControlDescriptorRequest;
#else
struct _URB_CONTROL_DESCRIPTOR_REQUEST UrbControlDescriptorRequest;
#endif
#if ...
_URB_CONTROL_GET_STATUS_REQUEST UrbControlGetStatusRequest;
#else
struct _URB_CONTROL_GET_STATUS_REQUEST UrbControlGetStatusRequest;
#endif
#if ...
_URB_CONTROL_FEATURE_REQUEST UrbControlFeatureRequest;
#else
struct _URB_CONTROL_FEATURE_REQUEST UrbControlFeatureRequest;
#endif
#if ...
_URB_CONTROL_VENDOR_OR_CLASS_REQUEST UrbControlVendorClassRequest;
#else
struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST UrbControlVendorClassRequest;
#endif
#if ...
_URB_CONTROL_GET_INTERFACE_REQUEST UrbControlGetInterfaceRequest;
#else
struct _URB_CONTROL_GET_INTERFACE_REQUEST UrbControlGetInterfaceRequest;
#endif
#if ...
_URB_CONTROL_GET_CONFIGURATION_REQUEST UrbControlGetConfigurationRequest;
#else
struct _URB_CONTROL_GET_CONFIGURATION_REQUEST UrbControlGetConfigurationRequest;
#endif
#if ...
_URB_OS_FEATURE_DESCRIPTOR_REQUEST UrbOSFeatureDescriptorRequest;
#else
struct _URB_OS_FEATURE_DESCRIPTOR_REQUEST UrbOSFeatureDescriptorRequest;
#endif
#if ...
_URB_OPEN_STATIC_STREAMS UrbOpenStaticStreams;
#else
struct _URB_OPEN_STATIC_STREAMS UrbOpenStaticStreams;
#endif
#if ...
_URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS UrbGetIsochPipeTransferPathDelays;
#else
struct _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS UrbGetIsochPipeTransferPathDelays;
#endif
};
} URB, *PURB;
멤버
UrbHeader
호스트 컨트롤러 드라이버로 전송되는 요청에 대한 기본 정보를 제공합니다. 자세한 내용은 _URB_HEADER 참조하세요.
UrbSelectInterface
USB 디바이스에 대한 선택 인터페이스 명령의 형식을 정의합니다. 자세한 내용은 _URB_SELECT_INTERFACE 참조하세요.
UrbSelectConfiguration
USB 디바이스에 대한 선택 구성 명령의 형식을 정의합니다. 자세한 내용은 _URB_SELECT_CONFIGURATION 참조하세요.
UrbPipeRequest
USB 엔드포인트의 파이프에 대한 명령의 형식을 정의합니다. 자세한 내용은 _URB_PIPE_REQUEST 참조하세요.
UrbFrameLengthControl
Windows 2000 이상 운영 체제에서는 사용되지 않으며 Microsoft에서 지원되지 않습니다. 사용하지 마십시오.
UrbGetFrameLength
Windows 2000 이상 운영 체제에서는 사용되지 않으며 Microsoft에서 지원되지 않습니다. 사용하지 마십시오.
UrbSetFrameLength
Windows 2000 이상 운영 체제에서는 사용되지 않으며 Microsoft에서 지원되지 않습니다. 사용하지 마십시오.
UrbGetCurrentFrameNumber
USB 버스에서 현재 프레임 번호를 가져오는 명령의 형식을 정의합니다. 자세한 내용은 _URB_GET_CURRENT_FRAME_NUMBER 참조하세요.
UrbControlTransfer
제어 파이프에서 데이터를 전송하거나 수신하는 명령의 형식을 정의합니다. 자세한 내용은 _URB_CONTROL_TRANSFER 참조하세요.
UrbControlTransferEx
제어 파이프에서 데이터를 전송하거나 수신하는 명령의 형식을 정의합니다. 자세한 내용은 _URB_CONTROL_TRANSFER_EX.
제어 파이프에서 데이터를 전송하거나 수신하는 명령의 형식을 정의합니다.
UrbBulkOrInterruptTransfer
대량 파이프에서 데이터를 전송하거나 받거나 인터럽트 파이프에서 데이터를 수신하는 명령의 형식을 정의합니다. 자세한 내용은 _URB_BULK_OR_INTERRUPT_TRANSFER 참조하세요.
UrbIsochronousTransfer
USB 디바이스로의 등시 전송 형식을 정의합니다. 자세한 내용은 _URB_ISOCH_TRANSFER 참조하세요.
UrbControlDescriptorRequest
USB 디바이스에서 설명자를 검색하거나 설정하는 명령의 형식을 정의합니다. 자세한 내용은 _URB_CONTROL_DESCRIPTOR_REQUEST 참조하세요.
UrbControlGetStatusRequest
디바이스, 인터페이스 또는 엔드포인트에서 상태 가져오는 명령의 형식을 정의합니다. 자세한 내용은 _URB_CONTROL_GET_STATUS_REQUEST 참조하세요.
UrbControlFeatureRequest
디바이스, 인터페이스 또는 엔드포인트에서 USB 정의 기능을 설정하거나 지우는 명령의 형식을 정의합니다. 자세한 내용은 _URB_CONTROL_FEATURE_REQUEST 참조하세요.
UrbControlVendorClassRequest
디바이스, 인터페이스, 엔드포인트 또는 기타 디바이스 정의 대상에서 공급업체 또는 클래스별 요청을 보내거나 받는 명령의 형식을 정의합니다. 자세한 내용은 _URB_CONTROL_VENDOR_OR_CLASS_REQUEST 참조하세요.
UrbControlGetInterfaceRequest
선택한 인터페이스에 대한 현재 대체 인터페이스 설정을 가져오는 명령의 형식을 정의합니다. 자세한 내용은 _URB_CONTROL_GET_INTERFACE_REQUEST 참조하세요.
UrbControlGetConfigurationRequest
디바이스에 대한 현재 구성을 가져오는 명령의 형식을 정의합니다. 자세한 내용은 _URB_CONTROL_GET_CONFIGURATION_REQUEST 참조하세요.
UrbOSFeatureDescriptorRequest
Microsoft OS 설명자를 요청하는 명령의 형식을 정의합니다. 자세한 내용은 _URB_OS_FEATURE_DESCRIPTOR_REQUEST 참조하세요.
UrbOpenStaticStreams
USB 3.0 디바이스의 대량 엔드포인트에서 스트림을 여는 명령의 형식을 정의합니다. 자세한 내용은 _URB_OPEN_STATIC_STREAMS 및 USB 대량 엔드포인트에서 정적 스트림을 열고 닫는 방법을 참조하세요.
UrbGetIsochPipeTransferPathDelays
클라이언트 드라이버가 디바이스가 동시 패킷을 정시에 가져올 수 있도록 호스트 컨트롤러 및 전송 완료에서 등시 전송 프로그래밍과 관련된 지연을 검색하는 명령의 형식을 정의합니다. 자세한 내용은 _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS 참조하세요.
설명
각 구조에서 설정할 함수 코드에 대한 자세한 내용은 _URB_HEADER 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | usb.h(Usb.h 포함) |