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