Fungsi WdfRequestRetrieveUnsafeUserInputBuffer (wdfrequest.h)

[Berlaku untuk KMDF saja]

Metode WdfRequestRetrieveUnsafeUserInputBuffer mengambil buffer input permintaan I/O, jika teknik permintaan untuk mengakses buffer data tidak di-buffer atau I/O langsung.

Sintaks

NTSTATUS WdfRequestRetrieveUnsafeUserInputBuffer(
  [in]            WDFREQUEST Request,
  [in]            size_t     MinimumRequiredLength,
  [out]           PVOID      *InputBuffer,
  [out, optional] size_t     *Length
);

Parameter

[in] Request

Handel ke objek permintaan kerangka kerja.

[in] MinimumRequiredLength

Ukuran buffer minimum, dalam byte, yang dibutuhkan driver untuk memproses permintaan I/O.

[out] InputBuffer

Penunjuk ke lokasi yang menerima alamat buffer.

[out, optional] Length

Penunjuk ke lokasi yang menerima ukuran buffer, dalam byte. Parameter ini bersifat opsional dan dapat berupa NULL.

Nilai kembali

WdfRequestRetrieveUnsafeUserInputBuffer mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, metode ini mungkin mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
STATUS_INVALID_PARAMETER
Parameter input tidak valid.
STATUS_INVALID_DEVICE_REQUEST
Nilai ini dikembalikan jika salah satu hal berikut ini terjadi:
STATUS_BUFFER_TOO_SMALL
Parameter MinimumRequiredLength menentukan ukuran buffer yang lebih besar dari ukuran aktual buffer.
 

Metode ini mungkin juga mengembalikan nilai NTSTATUS lainnya.

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

Keterangan

Metode WdfRequestRetrieveUnsafeUserInputBuffer harus dipanggil dari fungsi panggilan balik EvtIoInCallerContext . Setelah memanggil WdfRequestRetrieveUnsafeUserInputBuffer, driver harus memanggil WdfRequestProbeAndLockUserBufferForRead.

Driver dapat memanggil WdfRequestRetrieveUnsafeUserInputBuffer jika kode kontrol I/O permintaan IRP_MJ_WRITE atau IRP_MJ_DEVICE_CONTROL.

Driver dapat mengakses buffer yang diambil sampai menyelesaikan permintaan I/O yang diwakili parameter Permintaan .

Untuk informasi selengkapnya tentang WdfRequestRetrieveUnsafeUserInputBuffer, lihat Mengakses Buffer Data di Driver Framework-Based.

Contoh

Untuk contoh kode yang menggunakan WdfRequestRetrieveUnsafeUserInputBuffer, lihat WdfRequestProbeAndLockUserBufferForRead.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1,0
Header wdfrequest.h (termasuk Wdf.h)
Pustaka Wdf01000.sys (lihat Penerapan Versi Pustaka Kerangka Kerja.)
IRQL PASSIVE_LEVEL
Aturan kepatuhan DDI BufAfterReqCompletedIntIoctl(kmdf), BufAfterReqCompletedIntIoctlA(kmdf), BufAfterReqCompletedIoctl(kmdf), BufAfterReqCompletedIoctlA(kmdf), BufAfterReqCompletedRead(kmdf), BufAfterReqCompletedWrite(kmdf), BufAfterReqCompletedWriteA(kmdf), DriverCreate(kmdf), InputBufferAPI(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Lihat juga

EvtIoInCallerContext

WdfRequestProbeAndLockUserBufferForRead

WdfRequestRetrieveUnsafeUserOutputBuffer