EVT_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST fungsi panggilan balik (wdfio.h)

[Berlaku untuk KMDF saja]

Fungsi panggilan balik EvtIoAllocateResourcesForReservedRequest driver mengalokasikan sumber daya khusus permintaan yang dapat digunakan driver untuk memproses permintaan I/O di masa mendatang. Kerangka kerja ini telah mengalokasikan objek permintaan yang ditentukan untuk digunakan di masa mendatang dalam situasi memori rendah.

Sintaks

EVT_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST EvtWdfIoAllocateResourcesForReservedRequest;

NTSTATUS EvtWdfIoAllocateResourcesForReservedRequest(
  [in] WDFQUEUE Queue,
  [in] WDFREQUEST Request
)
{...}

Parameter

[in] Queue

Handel ke objek antrean I/O.

[in] Request

Handel ke objek permintaan yang telah dibuat kerangka kerja untuk digunakan selama situasi memori rendah di masa mendatang.

Nilai kembali

Fungsi panggilan balik EvtIoAllocateResourcesForReservedRequest harus mengembalikan STATUS_SUCCESS atau nilai status lain yang NT_SUCCESS(status) sama dengan TRUE jika fungsi tidak mengalami kesalahan. Jika tidak, fungsi ini harus mengembalikan nilai status yang NT_SUCCESS(status) sama dengan FALSE.

Keterangan

Driver dapat mendaftarkan fungsi panggilan balik EvtIoAllocateResourcesForReservedRequest saat memanggil WdfIoQueueAssignForwardProgressPolicy.

Jika driver Anda mendaftarkan fungsi panggilan balik EvtIoAllocateResourcesForReservedRequest , kerangka kerja memanggil fungsi segera setelah membuat objek permintaan yang dicadangkannya untuk situasi memori rendah.

Fungsi panggilan balik dapat mengalokasikan sumber daya yang akan diperlukan driver Anda untuk memproses permintaan nanti, jika kerangka kerja menggunakan permintaan yang dipesan karena situasi memori rendah.

Untuk mengalokasikan memori untuk sumber daya khusus permintaan, fungsi panggilan balik EvtIoAllocateResourcesForReservedRequest mungkin memanggil WdfObjectAllocateContext, menentukan penanganan objek permintaan yang ditentukan parameter Permintaan .

Atau, atau selain itu, driver Anda mungkin memanggil WdfDeviceInitSetRequestAttributes sebelum memanggil WdfDeviceCreate. Akibatnya, kerangka kerja akan mengalokasikan ruang konteks untuk setiap objek permintaan yang dipesan saat membuat objek.

Jika driver Anda mengalokasikan ruang konteks objek untuk objek permintaan yang dipesan, driver harus menginisialisasi ulang ruang konteks saat menyelesaikan permintaan I/O yang menggunakan objek permintaan yang dipesan. Kerangka kerja tidak menginisialisasi ulang ruang konteks objek permintaan yang dipesan setelah digunakan.

Jika driver Anda memanggil fungsi panggilan balik WdfDeviceInitSetRequestAttributes dan menentukan fungsi panggilan balik EvtCleanupCallback atau EvtDestroyCallback untuk objek permintaannya, kerangka kerja memanggil fungsi panggilan balik ini untuk objek permintaan yang dicadangkan hanya ketika menghapus antrean I/O terkait.

Penangan permintaan driver dapat memanggil WdfRequestIsReserved untuk menentukan apakah objek permintaan yang dipesan sedang digunakan.

Untuk informasi selengkapnya tentang cara menggunakan ruang konteks objek, lihat Ruang Konteks Objek Kerangka Kerja.

Jika fungsi panggilan balik berhasil mengalokasikan sumber daya, fungsi tersebut harus mengembalikan STATUS_SUCCESS.

Jika terjadi kesalahan alokasi sumber daya, seperti situasi memori rendah, fungsi panggilan balik harus mengembalikan nilai status kesalahan. Dalam hal ini, kerangka kerja berhenti mengalokasikan objek permintaan yang dipesan dan menggunakan nilai pengembalian fungsi panggilan balik sebagai nilai pengembalian untuk WdfIoQueueAssignForwardProgressPolicy.

Untuk informasi selengkapnya tentang fungsi panggilan balik EvtIoAllocateResourcesForReservedRequest , lihat Menjamin Kemajuan Penerusan Operasi I/O.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1.9
Header wdfio.h (termasuk Wdf.h)
IRQL <=DISPATCH_LEVEL

Lihat juga

EvtIoAllocateRequestResources

WdfIoQueueAssignForwardProgressPolicy

WdfRequestIsReserved