Compartilhar via


Função FltRetrieveIoPriorityInfo (fltkernel.h)

A rotina FltRetrieveIoPriorityInfo é usada por um driver de minifiltro para recuperar informações de prioridade de um thread.

Sintaxe

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

Parâmetros

[in, optional] Data

Um ponteiro opcional para uma estrutura FLT_CALLBACK_DATA , que representa uma operação de E/S. Este parâmetro pode ser NULL.

[in, optional] FileObject

Um ponteiro opcional para o objeto de arquivo associado à operação de E/S. Este parâmetro pode ser NULL.

[in, optional] Thread

Um ponteiro opcional para o thread do qual recuperar informações de prioridade. Este parâmetro pode ser NULL.

[in, out] PriorityInfo

Um ponteiro para uma estrutura IO_PRIORITY_INFO usada para receber as informações de prioridade do thread fornecido. A estrutura IO_PRIORITY_INFO deve ser inicializada por uma rotina apropriada antes de poder ser usada por essa rotina. Consulte a seção Comentários a seguir para obter mais informações.

Retornar valor

A rotina FltRetrieveIoPriorityInfo retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado.

Comentários

A rotina FltRetrieveIoPriorityInfo recupera informações de prioridade e salva as informações na estrutura apontada pelo parâmetro PriorityInfo .

Normalmente, a rotina FltRetrieveIoPriorityInfo é usada em conjunto com a rotina FltApplyPriorityInfoThread para salvar e definir a prioridade de E/S, a prioridade de paginação e a prioridade de thread de um thread.

Se o parâmetro Thread não for NULL, a prioridade de paginação do thread e a prioridade de thread serão recuperadas e colocadas nos membros PagePriority e ThreadPriority da estrutura IO_PRIORITY_INFO apontada pelo parâmetro PriorityInfo . Se o parâmetro Thread for NULL, os membros ThreadPriority e PagePriority da estrutura IO_PRIORITY_INFO serão marcados com valores sentinelas indicando que as prioridades de paginação e thread do thread não devem ser alteradas pelo sistema. Observe que esses valores sentinelas permanecem em vigor até serem alterados explicitamente.

O exemplo de pseudocódigo a seguir descreve qual valor de prioridade de E/S é recuperado e colocado no membro IoPriority da estrutura IO_PRIORITY_INFO apontada pelo parâmetro 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.

Observação

Se a estrutura IO_PRIORITY_INFO apontada pelo parâmetro PriorityInfo não tiver sido inicializada, você deverá fazer isso antes de chamar essa rotina chamando a rotina IoInitializePriorityInfo .

Requisitos

Requisito Valor
Cliente mínimo com suporte Essa rotina está disponível a partir do Windows Vista.
Plataforma de Destino Universal
Cabeçalho fltkernel.h (inclua Fltkernel.h)
Biblioteca Fltmgr.lib
DLL FltMgr.sys
IRQL <= DISPATCH_LEVEL

Confira também

FLT_CALLBACK_DATA

FltApplyPriorityInfoThread

FltGetIoPriorityHint

FltGetIoPriorityHintFromCallbackData

FltGetIoPriorityHintFromFileObject

FltGetIoPriorityHintFromThread

FltRetrieveIoPriorityInfo

FltSetIoPriorityHintIntoCallbackData

FltSetIoPriorityHintIntoFileObject

FltSetIoPriorityHintIntoThread

IO_PRIORITY_INFO

IoInitializePriorityInfo

PsGetCurrentThread