Función FltRetrieveIoPriorityInfo (fltkernel.h)

El controlador minifiltro usa la rutina FltRetrieveIoPriorityInfo para recuperar información de prioridad de un subproceso.

Sintaxis

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

Puntero opcional a una estructura FLT_CALLBACK_DATA , que representa una operación de E/S. Este parámetro puede ser NULL.

[in, optional] FileObject

Puntero opcional al objeto de archivo asociado a la operación de E/S. Este parámetro puede ser NULL.

[in, optional] Thread

Puntero opcional al subproceso del que se va a recuperar información de prioridad. Este parámetro puede ser NULL.

[in, out] PriorityInfo

Puntero a una estructura de IO_PRIORITY_INFO utilizada para recibir la información de prioridad del subproceso especificado. La estructura de IO_PRIORITY_INFO debe inicializarse mediante una rutina adecuada para poder usarla. Consulte la sección Comentarios siguientes para obtener más información.

Valor devuelto

La rutina FltRetrieveIoPriorityInfo devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado.

Comentarios

La rutina FltRetrieveIoPriorityInfo recupera información de prioridad y guarda la información en la estructura a la que apunta el parámetro PriorityInfo .

Normalmente, la rutina FltRetrieveIoPriorityInfo se usa junto con la rutina FltApplyPriorityInfoThread para guardar y, a continuación, establecer la prioridad de E/S de un subproceso, la prioridad de paginación y la prioridad de subproceso.

Si el parámetro Thread no es NULL, la prioridad de paginación del subproceso y la prioridad del subproceso se recuperarán y colocarán en los miembros PagePriority y ThreadPriority de la estructura IO_PRIORITY_INFO a la que apunta el parámetro PriorityInfo . Si el parámetro Thread es NULL, los miembros ThreadPriority y PagePriority de la estructura IO_PRIORITY_INFO se marcan con valores de sentinel que indican que el sistema no debe cambiar las prioridades de paginación y subproceso del subproceso. Tenga en cuenta que estos valores de Sentinel permanecen en vigor hasta que se cambian explícitamente.

En el siguiente ejemplo de pseudocódigo se describe el valor de prioridad de E/S que se recupera y se coloca en el miembro IoPriority de la estructura IO_PRIORITY_INFO a la que apunta el 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.

Nota

Si no se ha inicializado la estructura de IO_PRIORITY_INFO a la que apunta el parámetro PriorityInfo , debe hacerlo antes de llamar a esta rutina llamando a la rutina IoInitializePriorityInfo .

Requisitos

Requisito Value
Cliente mínimo compatible Esta rutina está disponible a partir de Windows Vista.
Plataforma de destino Universal
Encabezado fltkernel.h (incluya Fltkernel.h)
Library Fltmgr.lib
Archivo DLL FltMgr.sys
IRQL <= DISPATCH_LEVEL

Consulte también

FLT_CALLBACK_DATA

FltApplyPriorityInfoThread

FltGetIoPriorityHint

FltGetIoPriorityHintFromCallbackData

FltGetIoPriorityHintFromFileObject

FltGetIoPriorityHintFromThread

FltRetrieveIoPriorityInfo

FltSetIoPriorityHintIntoCallbackData

FltSetIoPriorityHintIntoFileObject

FltSetIoPriorityHintIntoThread

IO_PRIORITY_INFO

IoInitializePriorityInfo

PsGetCurrentThread