FltRetrieveIoPriorityInfo-Funktion (fltkernel.h)
Die FltRetrieveIoPriorityInfo Routine wird von einem Minifiltertreiber verwendet, um Prioritätsinformationen aus einem Thread abzurufen.
Syntax
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
Ein optionaler Zeiger auf eine FLT_CALLBACK_DATA-Struktur, die einen E/A-Vorgang darstellt. Dieser Parameter kann NULL-sein.
[in, optional] FileObject
Ein optionaler Zeiger auf das Dateiobjekt, das dem E/A-Vorgang zugeordnet ist. Dieser Parameter kann NULL-sein.
[in, optional] Thread
Ein optionaler Zeiger auf den Thread, aus dem Prioritätsinformationen abgerufen werden sollen. Dieser Parameter kann NULL-sein.
[in, out] PriorityInfo
Ein Zeiger auf eine IO_PRIORITY_INFO Struktur, die zum Empfangen der Prioritätsinformationen aus dem angegebenen Thread verwendet wird. Die IO_PRIORITY_INFO Struktur muss von einer geeigneten Routine initialisiert werden, bevor sie von dieser Routine verwendet werden kann. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
Rückgabewert
Die FltRetrieveIoPriorityInfo Routine gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert zurück.
Bemerkungen
Die FltRetrieveIoPriorityInfo Routine ruft Prioritätsinformationen ab und speichert die Informationen in der Struktur, auf die der parameter PriorityInfo verweist.
In der Regel wird die FltRetrieveIoPriorityInfo Routine in Verbindung mit der FltApplyPriorityInfoThread Routine verwendet, um die E/A-Priorität, die Pagingpriorität und die Threadpriorität eines Threads zu speichern und dann festzulegen.
Wenn der parameter Thread- nichtNULL-ist, wird die Pagingpriorität und threadpriorität des Threads abgerufen und in der PagePriority- und ThreadPriority Member der IO_PRIORITY_INFO Struktur abgerufen, auf die der PriorityInfo Parameter verweist. Wenn der Thread--Parameter NULL-ist, werden die ThreadPriority- und PagePriority-Elemente der IO_PRIORITY_INFO-Struktur mit Sentinelwerten gekennzeichnet, die angeben, dass die Paging- und Threadpriorität des Threads nicht vom System geändert werden sollten. Beachten Sie, dass diese Sentinelwerte bis zur expliziten Änderung wirksam bleiben.
Im folgenden Pseudocodebeispiel wird beschrieben, auf welchen E/A-Prioritätswert abgerufen und in das IoPriority- Element der IO_PRIORITY_INFO-Struktur gesetzt wird, auf das der parameter PriorityInfo verweist.
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.
Anmerkung
Wenn die IO_PRIORITY_INFO Struktur, auf die der PriorityInfo Parameter verweist, nicht initialisiert wurde, müssen Sie dies vor dem Aufrufen dieser Routine tun, indem Sie die IoInitializePriorityInfo Routine aufrufen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Diese Routine ist ab Windows Vista verfügbar. |
Zielplattform- | Universal |
Header- | fltkernel.h (include Fltkernel.h) |
Library | Fltmgr.lib |
DLL- | FltMgr.sys |
IRQL- | <= DISPATCH_LEVEL |
Siehe auch
FltGetIoPriorityHintFromCallbackData
FltGetIoPriorityHintFromFileObject
FltGetIoPriorityHintFromThread
FltSetIoPriorityHintIntoCallbackData
FltSetIoPriorityHintIntoFileObject