Поделиться через


Функция FltRetrieveIoPriorityInfo (fltkernel.h)

Подпрограмма fltRetrieveIoPriorityInfo используется драйвером минифильтра для получения сведений о приоритете из потока.

Синтаксис

NTSTATUS FLTAPI FltRetrieveIoPriorityInfo(
  [in, optional] PFLT_CALLBACK_DATA Data,
  [in, optional] PFILE_OBJECT       FileObject,
  [in, optional] PETHREAD           Thread,
  [in, out]      PIO_PRIORITY_INFO  PriorityInfo
);

Параметры

[in, optional] Data

Необязательный указатель на структуру FLT_CALLBACK_DATA, представляющую операцию ввода-вывода. Этот параметр может быть NULL.

[in, optional] FileObject

Необязательный указатель на объект файла, связанный с операцией ввода-вывода. Этот параметр может быть NULL.

[in, optional] Thread

Необязательный указатель на поток, из которого необходимо получить сведения о приоритете. Этот параметр может быть NULL.

[in, out] PriorityInfo

Указатель на структуру IO_PRIORITY_INFO, используемую для получения сведений о приоритете из данного потока. Структура IO_PRIORITY_INFO должна быть инициализирована соответствующей подпрограммой, прежде чем она может использоваться этой подпрограммой. Дополнительные сведения см. в следующем разделе "Примечания".

Возвращаемое значение

Подпрограмма fltRetrieveIoPriorityInfo возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS.

Замечания

Подпрограмма FltRetrieveIoPriorityInfo извлекает сведения о приоритете и сохраняет сведения в структуре, на которую указывает параметр PriorityInfo.

Как правило, подпрограмма fltRetrieveIoPriorityInfo используется вместе с подпрограммой FltApplyPriorityInfoThread для сохранения и задания приоритета ввода-вывода потока, приоритета разбиения по страницам и приоритета потока.

Если параметр Thread неNULL, приоритет разбиения по страницам и приоритет потока будут извлечены и помещены в PagePriority и ThreadPriority элементов структуры IO_PRIORITY_INFO, на которую указывает параметр PriorityInfo. Если параметр ThreadNULL, то ThreadPriority и PagePriority элементы структуры IO_PRIORITY_INFO помечены значениями sentinel, указывающими на то, что приоритеты разбиения по страницам и потокам не должны быть изменены системой. Обратите внимание, что эти значения sentinel остаются в силе до явного изменения.

В следующем примере псевдокода описывается, какое значение приоритета ввода-вывода извлекается и помещается в элемент IoPriority структуры IO_PRIORITY_INFO, на которую указывает параметр 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.

Заметка

Если IO_PRIORITY_INFO структура, на которую указывает параметр PriorityInfo, не инициализирована, необходимо сделать это перед вызовом этой процедуры, вызвав подпрограмму IoInitializePriorityInfo.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Эта подпрограмма доступна начиная с Windows Vista.
целевая платформа Всеобщий
заголовка fltkernel.h (include Fltkernel.h)
библиотеки Fltmgr.lib
DLL FltMgr.sys
IRQL <= DISPATCH_LEVEL

См. также

FLT_CALLBACK_DATA

FltApplyPriorityInfoThread

FltGetIoPriorityHint

FltGetIoPriorityHintFromCallbackData

FltGetIoPriorityHintFromFileObject

FltGetIoPriorityHintFromThread

FltRetrieveIoPriorityInfo

FltSetIoPriorityHintIntoCallbackData

FltSetIoPriorityHintIntoFileObject

FltSetIoPriorityHintIntoThread

IO_PRIORITY_INFO

IoInitializePriorityInfo

PsGetCurrentThread