다음을 통해 공유


IWDFIoRequest::ForwardToIoQueue 메서드(wudfddi.h)

[경고: 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

추가 정보

IWDFIoQueue

IWDFIoQueue::RetrieveNextRequest

IWDFIoRequest

IWDFIoRequest::MarkCancelable

IWDFIoRequest::UnmarkCancelable