Функция 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 |
См. также
FltGetIoPriorityHintFromCallbackData
FltGetIoPriorityHintFromFileObject
FltGetIoPriorityHintFromThread
FltSetIoPriorityHintIntoCallbackData
FltSetIoPriorityHintIntoFileObject