Fungsi WdfRequestFormatRequestUsingCurrentType (wdfrequest.h)

[Berlaku untuk KMDF dan UMDF]

Metode WdfRequestFormatRequestUsingCurrentType memformat permintaan I/O tertentu sehingga driver dapat meneruskannya , tidak dimodifikasi, ke target I/O lokal driver.

Sintaks

void WdfRequestFormatRequestUsingCurrentType(
  [in] WDFREQUEST Request
);

Parameter

[in] Request

Handel ke objek permintaan kerangka kerja yang diterima driver dari salah satu antrean I/O-nya.

Nilai kembali

Tidak ada

Keterangan

Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.

Ketika driver Anda menerima permintaan I/O, terkadang Anda ingin driver meneruskan permintaan, tidak dimodifikasi, ke target I/O lokalnya. Untuk meneruskan permintaan tersebut, driver harus:

  1. Panggil WdfRequestFormatRequestUsingCurrentType untuk memformat objek permintaan sehingga kerangka kerja dapat meneruskan permintaan ke target I/O lokal driver.
  2. Panggil WdfRequestSend untuk mengirim permintaan ke target I/O.
Untuk informasi selengkapnya tentang WdfRequestFormatRequestUsingCurrentType, lihat Meneruskan Permintaan I/O.

Contoh

Contoh kode berikut adalah fungsi panggilan balik EvtIoDefault yang meneruskan setiap permintaan I/O yang diterimanya, tanpa modifikasi, ke target I/O lokal perangkat.

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

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1,0
Versi UMDF minimum 2.0
Header wdfrequest.h (termasuk Wdf.h)
Pustaka Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
Aturan kepatuhan DDI DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), RequestFormattedValid(kmdf)

Lihat juga

WdfRequestSend

WdfRequestWdmFormatUsingStackLocation