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_STREAMSUSB 대량 엔드포인트에서 정적 스트림을 열고 닫는 방법을 참조하세요.

UrbGetIsochPipeTransferPathDelays

클라이언트 드라이버가 디바이스가 동시 패킷을 정시에 가져올 수 있도록 호스트 컨트롤러 및 전송 완료에서 등시 전송 프로그래밍과 관련된 지연을 검색하는 명령의 형식을 정의합니다. 자세한 내용은 _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS 참조하세요.

설명

각 구조에서 설정할 함수 코드에 대한 자세한 내용은 _URB_HEADER 참조하세요.

요구 사항

요구 사항
헤더 usb.h(Usb.h 포함)

추가 정보

IOCTL_INTERNAL_USB_SUBMIT_URB

USB 구조체