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();

반환 값

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

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

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

설명

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

예제

다음 코드 예제에서는 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