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_SelectConfigUrbAllocateAndBuild