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.

Mengembalikan nilai

Rutinitas FltRetrieveIoPriorityInfo mengembalikan STATUS_SUCCESS atau nilai 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 menyimpan dan kemudian mengatur prioritas I/O utas, prioritas halaman, 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 ThreadADALAH 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 hingga diubah secara eksplisit.

Contoh pseudo-code 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 ditujukkan oleh parameter PriorityInfo belum diinisialisasi, Anda harus melakukannya sebelum memanggil rutinitas ini, dengan memanggil rutinitas IoInitializePriorityInfo .

Persyaratan

   
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

FLT_CALLBACK_DATA

FltApplyPriorityInfoThread

FltGetIoPriorityHint

FltGetIoPriorityHintFromCallbackData

FltGetIoPriorityHintFromFileObject

FltGetIoPriorityHintFromThread

FltRetrieveIoPriorityInfo

FltSetIoPriorityHintIntoCallbackData

FltSetIoPriorityHintIntoFileObject

FltSetIoPriorityHintIntoThread

IO_PRIORITY_INFO

IoInitializePriorityInfo

PsGetCurrentThread