다음을 통해 공유


UsbBuildInterruptOrBulkTransferRequest 매크로(usbdlib.h)

UsbBuildInterruptOrBulkTransferRequest 매크로는 대량 파이프에서 데이터를 보내거나 받거나 인터럽트 파이프에서 데이터를 수신하기 위해 URB 형식을 지정합니다.

구문

void UsbBuildInterruptOrBulkTransferRequest(
  [in, out]       urb,
  [in]            length,
  [in]            pipeHandle,
  [in, optional]  transferBuffer,
  [in, optional]  transferBufferMDL,
  [in]            transferBufferLength,
  [in]            transferFlags,
  [in]            link
);

매개 변수

[in, out] urb

인터럽트 또는 대량 전송 요청으로 형식이 지정될 URB 에 대한 포인터입니다.

[in] length

URB의 크기(바이트)를 지정합니다.

[in] pipeHandle

구성을 선택할 때 HCD에서 반환된 이 파이프에 대한 핸들을 지정합니다.

[in, optional] transferBuffer

전송에 대한 상주 버퍼에 대한 포인터이거나, MDL이 TransferBufferMDL에 제공된 경우 NULL입니다. 이 버퍼의 내용은 TransferFlags 값에 따라 달라집니다. USBD_TRANSFER_DIRECTION_IN 지정된 경우 이 버퍼에는 HCD에서 반환되는 디바이스에서 읽은 데이터가 포함됩니다. 그렇지 않으면 이 버퍼에 디바이스로 전송할 드라이버 제공 데이터가 포함됩니다.

[in, optional] transferBufferMDL

상주 버퍼를 설명하는 MDL에 대한 포인터이거나, 버퍼가 TransferBuffer에 제공된 경우 NULL입니다. 버퍼의 내용은 TransferFlags 값에 따라 달라집니다. USBD_TRANSFER_DIRECTION_IN 지정한 경우 설명된 버퍼에는 HCD에서 반환되는 디바이스에서 읽은 데이터가 포함됩니다. 그렇지 않으면 버퍼에 디바이스로 전송할 드라이버 제공 데이터가 포함됩니다. MDL은 페이지가 지정되지 않은 풀에서 할당되어야 합니다.

[in] transferBufferLength

TransferBuffer에 지정되거나 TransferBufferMDL 설명된 버퍼의 길이(바이트)를 지정합니다.

[in] transferFlags

다음 플래그의 0, 1 또는 조합을 지정합니다.

USBD_TRANSFER_DIRECTION_IN

디바이스에서 데이터를 요청하도록 설정됩니다. 디바이스로 데이터를 전송하려면 이 플래그가 명확해야 합니다.

USBD_SHORT_TRANSFER_OK

USBD_TRANSFER_DIRECTION_IN 설정된 경우 사용할 수 있습니다. 설정된 경우 는 엔드포인트의 최대 패킷 크기보다 짧은 디바이스에서 패킷을 받은 경우 HCD에 오류를 반환하지 않도록 지시합니다. 그렇지 않으면 짧은 요청이 오류 조건을 반환합니다.

[in] link

예약되어 있습니다. NULL로 설정해야 합니다.

반환 값

없음

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 usbdlib.h(Usbdlib.h 포함)

추가 정보

Urb

USB 디바이스 드라이버 프로그래밍 참조

USB_DEVICE_DESCRIPTOR