[경고: UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에는 새로운 기능이 추가되지 않으며 최신 버전의 Windows 10에서는 UMDF 1에 대한 지원이 제한되어 있습니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다. 자세한 내용은 UMDF시작 .]을 참조하세요.
ForwardToIoQueue 메서드는 호출 드라이버의 I/O 큐 중 하나에 I/O 요청을 전달합니다(즉, 다시 큐에 넣기).
통사론
HRESULT ForwardToIoQueue(
[in] IWDFIoQueue *pDestination
);
매개 변수
[in] pDestination
대상 큐 개체의 IWDFIoQueue 인터페이스에 대한 포인터입니다.
반환 값
ForwardToIoQueue 작업이 성공하면 S_OK 반환합니다. 그렇지 않으면 이 메서드는 Winerror.h에 정의된 오류 코드 중 하나를 반환합니다.
발언
드라이버는 I/O 요청을 소유해야 하며 I/O 큐 중 하나에서 요청을 가져와야 합니다.
원본 큐와 대상 큐는 같을 수 없습니다. 즉, 드라이버는 ForwardToIoQueue 호출하여 수신된 큐에 요청을 반환할 수 없습니다. I/O 요청을 I/O 큐에 반환하려면 드라이버는 IWDFIoRequest2::Requeue호출할 수 있습니다.
원본 큐와 대상 큐는 모두 동일한 디바이스에 속해야 합니다.
또한 ForwardToIoQueue 메서드는 IWDFIoQueue::RetrieveNextRequest 메서드를 호출하여 드라이버가 가져온 요청을 다시 큐에 추가할 수 없습니다.
요청을 취소할 수 없습니다. 드라이버가 이전에 IWDFIoRequest::MarkCancelable 메서드를 호출하여 요청을 취소할 수 있도록 하는 경우 드라이버는 ForwardToIoQueue호출하기 전에 IWDFIoRequest::UnmarkCancelable 메서드를 호출해야 합니다.
예제
다음 코드 예제에서는 요청의 버퍼가 필요한 정보를 보유할 수 없으면 다른 큐에 요청을 전달하는 방법을 보여 있습니다.
HRESULT hr;
if (OutputBufferSizeInBytes < sizeof(SWITCH_STATE)) {
hr = HRESULT_FROM_NT(ERROR_INSUFFICIENT_BUFFER);
}
else {
hr = FxRequest->ForwardToIoQueue(
m_Device->GetSwitchChangeQueue()
);
if (SUCCEEDED(hr)) {
completeRequest = false;
}
}
요구 사항
요구 | 값 |
---|---|
지원 종료 | UMDF 2.0 이상에서는 사용할 수 없습니다. |
대상 플랫폼 | 바탕 화면 |
최소 UMDF 버전 | 1.5 |
헤더 | wudfddi.h(Wudfddi.h 포함) |
DLL | WUDFx.dll |