Fungsi FltRetrieveIoPriorityInfo (fltkernel.h)
Rutinitas FltRetrieveIoPriorityInfo digunakan oleh driver minifilter untuk mengambil informasi prioritas dari utas.
Sintaks
NTSTATUS FLTAPI FltRetrieveIoPriorityInfo(
[in, optional] PFLT_CALLBACK_DATA Data,
[in, optional] PFILE_OBJECT FileObject,
[in, optional] PETHREAD Thread,
[in, out] PIO_PRIORITY_INFO PriorityInfo
);
Parameter
[in, optional] Data
Penunjuk opsional ke struktur FLT_CALLBACK_DATA , yang mewakili operasi I/O. Parameter ini bisa NULL.
[in, optional] FileObject
Penunjuk opsional ke objek file yang terkait dengan operasi I/O. Parameter ini bisa NULL.
[in, optional] Thread
Penunjuk opsional ke utas tempat untuk mengambil informasi prioritas. Parameter ini bisa NULL.
[in, out] PriorityInfo
Penunjuk ke struktur IO_PRIORITY_INFO yang digunakan untuk menerima informasi prioritas dari utas yang diberikan. Struktur IO_PRIORITY_INFO harus diinisialisasi dengan rutinitas yang sesuai sebelum dapat digunakan oleh rutinitas ini. Lihat bagian Keterangan berikut untuk informasi selengkapnya.
Nilai kembali
Rutinitas FltRetrieveIoPriorityInfo mengembalikan nilai STATUS_SUCCESS atau NTSTATUS yang sesuai.
Keterangan
Rutinitas FltRetrieveIoPriorityInfo mengambil informasi prioritas dan menyimpan informasi dalam struktur yang ditunjukkan oleh parameter PriorityInfo .
Biasanya, rutinitas FltRetrieveIoPriorityInfo digunakan bersama dengan rutinitas FltApplyPriorityInfoThread untuk disimpan dan kemudian mengatur prioritas I/O utas, prioritas penomoran, dan prioritas utas.
Jika parameter Utas bukan NULL, prioritas halaman utas dan prioritas utas akan diambil dan ditempatkan di anggota PagePriority dan ThreadPriority dari struktur IO_PRIORITY_INFO yang ditunjukkan oleh parameter PriorityInfo . Jika parameter Thread adalah NULL, anggota ThreadPriority dan PagePriority dari struktur IO_PRIORITY_INFO ditandai dengan nilai sentinel yang menunjukkan bahwa prioritas halaman dan utas utas tidak boleh diubah oleh sistem. Perhatikan bahwa nilai sentinel ini tetap berlaku sampai secara eksplisit berubah.
Contoh kode semu berikut menjelaskan nilai prioritas I/O apa yang diambil dan ditempatkan di anggota IoPriority dari struktur IO_PRIORITY_INFO yang ditujukkan oleh parameter PriorityInfo .
Set the IoPriority member of the structure pointed to by the PriorityInfo parameter to the normal I/O priority value.
IF Data is not NULL and represents an IRP-based operation and has I/O priority information available THEN
Set the IoPriority member of the structure pointed to by the PriorityInfo parameter to the Data's I/O priority value.
ELSE IF the FileObject parameter is not NULL and has I/O priority information available THEN
Set the IoPriority member of the structure pointed to by the PriorityInfo parameter to the FileObject's I/O priority value.
ELSE IF the Thread parameter is not NULL THEN
Set the IoPriority member of the structure pointed to by the PriorityInfo parameter to the Thread's I/O priority value.
Catatan
Jika struktur IO_PRIORITY_INFO yang ditujukan oleh parameter PriorityInfo belum diinisialisasi, Anda harus melakukannya sebelum memanggil rutinitas ini, dengan memanggil rutinitas IoInitializePriorityInfo .
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Rutinitas ini tersedia dimulai dengan Windows Vista. |
Target Platform | Universal |
Header | fltkernel.h (termasuk Fltkernel.h) |
Pustaka | Fltmgr.lib |
DLL | FltMgr.sys |
IRQL | <= DISPATCH_LEVEL |
Lihat juga
FltGetIoPriorityHintFromCallbackData
FltGetIoPriorityHintFromFileObject
FltGetIoPriorityHintFromThread
FltSetIoPriorityHintIntoCallbackData
FltSetIoPriorityHintIntoFileObject