다음을 통해 공유


USBD_IsochUrbAllocate 함수(usbdlib.h)

USBD_IsochUrbAllocate 루틴은 등시 전송 요청에 대해 URB 구조를 할당하고 형식을 지정합니다.

참고

WDF(Windows 드라이버 프레임워크) 드라이버의 경우: 클라이언트 드라이버가 WDF 기반인 경우 URB 구조에 대한 메모리를 할당하려면 USBD_IsochUrbAllocate 대신 WdfUsbTargetDeviceCreateIsochUrb 메서드를 호출해야 합니다.

구문

NTSTATUS USBD_IsochUrbAllocate(
  [in]  USBD_HANDLE USBDHandle,
  [in]  ULONG       NumberOfIsochPackets,
  [out] PURB        *Urb
);

매개 변수

[in] USBDHandle

USBD_CreateHandle 루틴에 대한 이전 호출에서 클라이언트 드라이버가 검색한 USBD 핸들입니다.

[in] NumberOfIsochPackets

전송을 수행하는 데 필요한 최대 등시 패킷 수를 지정합니다. 전송 버퍼는 버퍼 내에서 패킷의 바이트 오프셋과 같은 각 패킷에 대한 정보를 저장하는 USBD_ISO_PACKET_DESCRIPTOR 구조체의 가변 길이 배열에 설명되어 있습니다. 배열은 등시 요청 URB의 형식을 정의하는 데 사용되는 _URB_ISOCH_TRANSFER 구조체의 IsoPacket 멤버에 지정됩니다.

[out] Urb

USBD_IsochUrbAllocate 할당된 URB 를 수신하는 URB 구조체에 대한 포인터입니다. URB 구조체의 모든 멤버는 0으로 설정됩니다. 할당된 URB는 NumberOfIsochPacket으로 표시된 최대 등시성 패킷 수를 보유할 수 있을 만큼 큽니다.

클라이언트 드라이버는 드라이버가 USBD_UrbFree 호출하여 URB 사용을 마쳤을 때 URB를 해제해야 합니다.

반환 값

요청이 성공하면 USBD_IsochUrbAllocate 루틴이 STATUS_SUCCESS 반환합니다. 그렇지 않으면 USBD_UrbAllocateUrb를 로 NULL 설정하고 NT 상태 실패 코드를 반환합니다.

가능한 값은 USBDHandle 또는 Urb에 전달된 NULL 호출자를 나타내는 STATUS_INVALID_PARAMETER 포함하지만 이에 국한되지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 WDK가 필요합니다. Windows Vista 이상 버전의 Windows 운영 체제를 대상으로 합니다.
대상 플랫폼 데스크톱
머리글 usbdlib.h
라이브러리 Usbdex.lib
IRQL <=DISPATCH_LEVEL

추가 정보