다음을 통해 공유


WdfRequestFormatRequestUsingCurrentType 함수(wdfrequest.h)

[KMDF 및 UMDF에 적용]

WdfRequestFormatRequestUsingCurrentType 메서드는 지정된 I/O 요청의 형식을 지정하여 드라이버가 수정되지 않은 드라이버의 로컬 I/O 대상으로 수 있도록 합니다.

통사론

void WdfRequestFormatRequestUsingCurrentType(
  [in] WDFREQUEST Request
);

매개 변수

[in] Request

드라이버가 I/O 큐 중 하나에서 받은 프레임워크 요청 개체에 대한 핸들입니다.

반환 값

없음

발언

드라이버에서 잘못된 개체 핸들을 제공하면 버그 검사가 수행됩니다.

드라이버 I/O 요청받으면 드라이버가 수정되지 않은 요청을 로컬 I/O 대상으로 전달하도록 할 수 있습니다. 이러한 요청을 전달하려면 드라이버는 다음을 수행해야 합니다.

  1. WdfRequestFormatRequestUsingCurrentType 호출하여 프레임워크가 드라이버의 로컬 I/O 대상에 요청을 전달할 수 있도록 요청 개체의 형식을 지정합니다.
  2. WdfRequestSend 호출하여 I/O 대상으로 요청을 보냅니다.
WdfRequestFormatRequestUsingCurrentType대한 자세한 내용은 전달 I/O 요청참조하세요.

예제

다음 코드 예제는 수신하는 모든 I/O 요청을 수정 없이 디바이스의 로컬 I/O 대상으로 전달하는 EvtIoDefault 콜백 함수입니다.

VOID
MyEvtIoDefault(
    WDFQUEUE Queue,
    WDFREQUEST Request
    )
{
    WDF_REQUEST_SEND_OPTIONS options;
    NTSTATUS status;

    WdfRequestFormatRequestUsingCurrentType(Request);

    WDF_REQUEST_SEND_OPTIONS_INIT(
                                  &options,
                                  WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET
                                  );

    ret = WdfRequestSend (
                          Request,
                          WdfDeviceGetIoTarget(WdfIoQueueGetDevice(Queue)),
                          &options
                          );
    if (!ret) {
        status = WdfRequestGetStatus(Request);
        WdfRequestComplete(
                           Request,
                           status
                           );
    }
    return;
}

요구 사항

요구
대상 플랫폼 보편적
최소 KMDF 버전 1.0
최소 UMDF 버전 2.0
헤더 wdfrequest.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(KMDF); WUDFx02000.dll(UMDF)
IRQL <=DISPATCH_LEVEL
DDI 규정 준수 규칙 DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), RequestFormattedValid(kmdf)

참고 항목

WdfRequestSend

WdfRequestWdmFormatUsingStackLocation