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 要求

範例

下列程式代碼範例是 EvtIoDefault 回呼函式,它會將接收的每個 I/O 要求轉送至裝置的本機 I/O 目標,而不需修改。

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;
}

規格需求

需求
目標平台 Universal
最小 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