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 |
---|---|
|
Parameter input tidak valid. |
|
Nilai ini dikembalikan jika salah satu hal berikut ini terjadi:
|
|
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk