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;
    WDF_REQUEST_PARAMETERS params;
    BOOLEAN ret;

    WDF_REQUEST_PARAMETERS_INIT(&params);

    WdfRequestGetParameters(
                            Request,
                            &params
                            );

    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