Fungsi WdfRequestCompleteWithPriorityBoost (wdfrequest.h)
[Hanya berlaku untuk KMDF]
Metode WdfRequestCompleteWithPriorityBoost menyelesaikan permintaan I/O tertentu dan menyediakan status penyelesaian. Ini juga menentukan nilai yang dapat digunakan sistem untuk meningkatkan prioritas run-time utas yang meminta operasi I/O.
Sintaks
void WdfRequestCompleteWithPriorityBoost(
[in] WDFREQUEST Request,
[in] NTSTATUS Status,
[in] CCHAR PriorityBoost
);
Parameter
[in] Request
Handel ke objek permintaan kerangka kerja yang mewakili permintaan I/O yang sedang diselesaikan.
[in] Status
Nilai NTSTATUS yang mewakili status penyelesaian permintaan. Nilai status yang valid termasuk, tetapi tidak terbatas pada, berikut ini:
STATUS_SUCCESS
Driver berhasil menyelesaikan permintaan.
STATUS_CANCELLED
Driver membatalkan permintaan.
STATUS_UNSUCCESSFUL
Driver mengalami kesalahan saat memproses permintaan.
[in] PriorityBoost
Nilai konstanta yang ditentukan sistem untuk menaikkan prioritas run-time dari utas asli yang meminta operasi. Nilai konstanta spesifik jenis perangkat dan didefinisikan dalam Wdm.h. Format untuk nama konstanta adalah XXX_INCREMENT. Untuk informasi selengkapnya tentang nilai peningkatan prioritas, lihat Menentukan Peningkatan Prioritas Saat Menyelesaikan Permintaan I/O.
Nilai kembali
Tidak ada
Keterangan
Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.
Driver Anda harus memanggil WdfRequestCompleteWithPriorityBoost jika Anda ingin mengganti peningkatan prioritas default yang disediakan kerangka kerja. Misalnya, driver mungkin mengatur peningkatan prioritas ke IO_NO_INCREMENT jika dapat menyelesaikan permintaan dengan cepat, mungkin karena mendeteksi kesalahan.
Setelah panggilan ke WdfRequestCompleteWithPriorityBoost kembali, handel permintaan tidak lagi valid kecuali driver telah memanggil WdfObjectReference untuk menambahkan satu atau beberapa jumlah referensi tambahan ke objek permintaan. Perhatikan bahwa setelah WdfRequestCompleteWithPriorityBoost kembali, driver tidak boleh mencoba mengakses struktur IRP WDM terkait, bahkan jika telah disebut WdfObjectReference.
Untuk informasi selengkapnya tentang memanggil WdfRequestCompleteWithPriorityBoost, lihat Menyelesaikan Permintaan I/O.
Contoh
Contoh kode berikut menunjukkan bagaimana contoh di WdfRequestComplete dapat menggunakan WdfRequestCompleteWithPriorityBoost alih-alih WdfRequestComplete.
switch (params.Type) {
case WdfRequestTypeRead:
length = params.Parameters.Read.Length;
direction = WdfDmaDirectionReadFromDevice;
break;
case WdfRequestTypeWrite:
length = params.Parameters.Write.Length;
direction = WdfDmaDirectionWriteToDevice;
break;
default:
WdfRequestCompleteWithPriorityBoost(
Request,
STATUS_INVALID_PARAMETER,
IO_NO_INCREMENT
);
return;
}
Persyaratan
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