다음을 통해 공유


IWDFIoRequest2::Requeue 메서드(wudfddi.h)

[경고: UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에는 새로운 기능이 추가되지 않으며 최신 버전의 Windows 10에서는 UMDF 1에 대한 지원이 제한되어 있습니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다. 자세한 내용은 UMDF시작 .]을 참조하세요.

Requeue 메서드는 I/O 요청을 드라이버에 전달된 I/O 큐의 헤드에 반환합니다.

통사론

HRESULT Requeue();

반환 값

requeue 작업이 성공하면 S_OK 반환합니다. 그렇지 않으면 이 메서드는 다음 값 중 하나를 반환할 수 있습니다.

반환 코드 묘사
HRESULT_FROM_WIN32(ERROR_INVALID_OPERATION)
다음 중 하나가 발생하면 이 값이 반환됩니다.
  • 지정된 I/O 요청이 I/O 큐에서 제공되지 않았습니다.
  • 드라이버는 I/O 요청을 소유하지 않습니다.
  • 요청을 취소할 수 있습니다.
  • 큐의 디스패치 메서드는 수동이 아닙니다.
 

이 메서드는 Winerror.h에 포함된 다른 값 중 하나를 반환할 수 있습니다.

발언

드라이버는 I/O 큐에 수동 디스패치 메서드를 사용하는 경우에만 다시 큐에 호출할 수 있습니다.

예제

다음 코드 예제에서는 IQueueCallbackStateChange::OnStateChange 콜백 함수의 세그먼트를 보여줍니다. 세그먼트는 I/O에서 I/O 요청을 가져온 다음 큐에 요청을 반환합니다.

void 
CMyQueue::OnStateChange(
    __in IWDFIoQueue* pWdfQueue,
    __in WDF_IO_QUEUE_STATE 
    )
{
    HRESULT hr;
    IWDFIoRequest* Request;
...
    //
    // Get the IWDFIoRequest interface of the next request.
    //
    hr = pWdfQueue->RetrieveNextRequest(&Request);
...
    //
    // Declare an IWDFIoRequest2 interface pointer and obtain the
    // IWDFIoRequest2 interface from the IWDFIoRequest interface.
    //
    CComQIPtr<IWDFIoRequest2> r2 = Request;

    //
    // Add code here to determine whether to process or requeue the request.
    //
...
    //
    // Requeue the request.
    //
    hr = r2->Requeue();
    if (FAILED(hr)) goto Error;
...
}

요구 사항

요구
지원 종료 UMDF 2.0 이상에서는 사용할 수 없습니다.
대상 플랫폼 바탕 화면
최소 UMDF 버전 1.9
헤더 wudfddi.h(Wudfddi.h 포함)
DLL WUDFx.dll

참고 항목

IWDFIoQueue::RetrieveNextRequest

IWDFIoRequest2