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
FltGetIoPriorityHintFromCallbackData
FltGetIoPriorityHintFromFileObject
FltGetIoPriorityHintFromThread
FltSetIoPriorityHintIntoCallbackData
FltSetIoPriorityHintIntoFileObject