Funzione FltRetrieveIoPriorityInfo (fltkernel.h)

La routine FltRetrieveIoPriorityInfo viene usata da un driver minifilter per recuperare le informazioni di priorità da un thread.

Sintassi

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

Parametri

[in, optional] Data

Puntatore facoltativo a una struttura FLT_CALLBACK_DATA , che rappresenta un'operazione di I/O. Questo parametro può essere NULL.

[in, optional] FileObject

Puntatore facoltativo all'oggetto file associato all'operazione di I/O. Questo parametro può essere NULL.

[in, optional] Thread

Puntatore facoltativo al thread da cui recuperare le informazioni di priorità. Questo parametro può essere NULL.

[in, out] PriorityInfo

Puntatore a una struttura IO_PRIORITY_INFO utilizzata per ricevere le informazioni di priorità dal thread specificato. La struttura IO_PRIORITY_INFO deve essere inizializzata da una routine appropriata prima di poter essere usata da questa routine. Per altre informazioni, vedere la sezione Osservazioni seguenti.

Valore restituito

La routine FltRetrieveIoPriorityInfo restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato.

Commenti

La routine FltRetrieveIoPriorityInfo recupera le informazioni sulla priorità e salva le informazioni nella struttura a cui fa riferimento il parametro PriorityInfo .

In genere, la routine FltRetrieveIoPriorityInfo viene usata insieme alla routine FltApplyPriorityInfoThread per salvare e quindi impostare la priorità di I/O di un thread, la priorità di paging e la priorità del thread.

Se il parametro Thread non è NULL, la priorità di paging e la priorità del thread del thread verranno recuperati e inseriti nei membri PagePriority e ThreadPriority della struttura IO_PRIORITY_INFO a cui punta il parametro PriorityInfo. Se il parametro Thread è NULL, i membri ThreadPriority e PagePriority della struttura IO_PRIORITY_INFO sono contrassegnati con valori sentinel che indicano che le priorità del paging e del thread del thread non devono essere modificate dal sistema. Si noti che questi valori sentinel rimangono effettivi fino a quando non vengono modificati in modo esplicito.

Nell'esempio di pseudo-codice seguente viene descritto il valore di priorità di I/O recuperato e inserito nel membro IoPriority della struttura IO_PRIORITY_INFO a cui punta il parametro 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

Se la struttura IO_PRIORITY_INFO puntata dal parametro PriorityInfo non è stata inizializzata, è necessario farlo prima di chiamare questa routine chiamando la routine IoInitializePriorityInfo .

Requisiti

   
Client minimo supportato Questa routine è disponibile a partire da Windows Vista.
Piattaforma di destinazione Universale
Intestazione fltkernel.h (includere Fltkernel.h)
Libreria Fltmgr.lib
DLL FltMgr.sys
IRQL <= DISPATCH_LEVEL

Vedi anche

FLT_CALLBACK_DATA

FltApplyPriorityInfoThread

FltGetIoPriorityHint

FltGetIoPriorityHintFromCallbackData

FltGetIoPriorityHintFromFileObject

FltGetIoPriorityHintFromThread

FltRetrieveIoPriorityInfo

FltSetIoPriorityHintIntoCallbackData

FltSetIoPriorityHintIntoFileObject

FltSetIoPriorityHintIntoThread

IO_PRIORITY_INFO

IoInitializePriorityInfo

PsGetCurrentThread