WdfRequestFormatRequestUsingCurrentType 함수(wdfrequest.h)
[KMDF 및 UMDF에 적용]
WdfRequestFormatRequestUsingCurrentType 메서드는 지정된 I/O 요청의 형식을 지정하여 드라이버가 수정되지 않은 상태로 드라이버의 로컬 I/O 대상으로 전달할 수 있도록 합니다.
구문
void WdfRequestFormatRequestUsingCurrentType(
[in] WDFREQUEST Request
);
매개 변수
[in] Request
드라이버가 I/O 큐 중 하나에서 받은 프레임워크 요청 개체에 대한 핸들입니다.
반환 값
없음
설명
드라이버가 잘못된 개체 핸들을 제공하는 경우 버그 검사 발생합니다.
드라이버 가 I/O 요청을 받으면 드라이버가 수정되지 않은 요청을 로컬 I/O 대상으로 전달하도록 할 수 있습니다. 이러한 요청을 전달하려면 드라이버는 다음을 수행해야 합니다.
- WdfRequestFormatRequestUsingCurrentType을 호출하여 프레임워크가 드라이버의 로컬 I/O 대상에 요청을 전달할 수 있도록 요청 개체의 형식을 지정합니다.
- WdfRequestSend를 호출하여 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) |