다음을 통해 공유


USBD_AssignUrbToIoStackLocation 함수(usbdlib.h)

USBD_AssignUrbToIoStackLocation 루틴은 클라이언트 드라이버가 URB IRP의 다음 스택 위치와 연결하기 위해 호출됩니다.

통사론

void USBD_AssignUrbToIoStackLocation(
  [in] USBD_HANDLE        USBDHandle,
  [in] PIO_STACK_LOCATION IoStackLocation,
  [in] PURB               Urb
);

매개 변수

[in] USBDHandle

USBD_CreateHandle 루틴에 대한 이전 호출에서 검색된 USBD 핸들입니다.

[in] IoStackLocation

IRP의 다음 스택 위치(IO_STACK_LOCATION)에 대한 포인터입니다. 클라이언트 드라이버는 IoGetNextIrpStackLocation대한 이전 호출에서 스택 위치에 대한 포인터를 받았습니다.

[in] Urb

USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuild또는 USBD_SelectInterfaceUrbAllocateAndBuild의해 할당되는 URB 구조체에 대한 포인터입니다.

반환 값

없음

발언

클라이언트 드라이버가 USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuild또는 USBD_SelectInterfaceUrbAllocateAndBuild호출하여 URB를 할당한 경우 드라이버 USBD_AssignUrbToIoStackLocation 호출하여 URB를 IRP와 연결된 IO_STACK_LOCATION 연결해야. 이러한 루틴에 의해 할당된 URL의 경우 USBD_AssignUrbToIoStackLocationIO_STACK_LOCATIONParameters.Others.Argument1 설정을 URB로 바꿉니다. (IOCTL_INTERNAL_USB_SUBMIT_URB참조).

클라이언트 드라이버는 스택에서 URB 할당과 같은 다른 메커니즘을 사용하여 할당된 URB에 대한 USBD_AssignUrbToIoStackLocation 호출하지 합니다. 그렇지 않으면 USB 드라이버 스택이 버그 검사를 생성합니다.

클라이언트 드라이버는 요청을 보내기 위해 IoCallDriver 호출하기 전에 USBD_AssignUrbToIoStackLocation 호출해야 합니다. USBD_AssignUrbToIoStackLocation IRP의 다음 스택 위치를 URB로 채웁니다. 루틴은 IO_STACK_LOCATIONFileObject 멤버도 업데이트합니다.

코드 예제는 URB제출하는 방법을 참조하세요.

요구 사항

요구
지원되는 최소 클라이언트 Windows 8용 WDK가 필요합니다. Windows Vista 이상 버전의 Windows 운영 체제를 대상으로 합니다.
대상 플랫폼 바탕 화면
헤더 usbdlib.h
라이브러리 Usbdex.lib
IRQL <=DISPATCH_LEVEL

참고 항목

URB 제출하는 방법

USBD_IsochUrbAllocate

USBD_SelectConfigUrbAllocateAndBuild

USBD_SelectInterfaceUrbAllocateAndBuild

USBD_UrbAllocate