struttura FSRTL_PER_FILE_CONTEXT (ntifs.h)

Un driver di filtro del file system legacy può usare una struttura di FSRTL_PER_FILE_CONTEXT per associare informazioni di contesto specifiche del driver a un file aperto.

Sintassi

typedef struct _FSRTL_PER_FILE_CONTEXT {
  LIST_ENTRY     Links;
  PVOID          OwnerId;
  PVOID          InstanceId;
  PFREE_FUNCTION FreeCallback;
} FSRTL_PER_FILE_CONTEXT, *PFSRTL_PER_FILE_CONTEXT;

Members

Links

Collegamento per questa struttura nell'elenco di tutte le strutture di contesto per file associate allo stesso file. FsRtlInsertPerFileContext inserisce questo membro nell'elenco di tutte le strutture di contesto per ogni file per un file.

OwnerId

Puntatore a un buffer allocato dal driver di filtro che identifica in modo univoco il proprietario della struttura del contesto per file. Il formato di questa variabile è specifico del driver di filtro. I driver di filtro devono impostare questo membro su un valore non NULL .

InstanceId

Puntatore a un buffer allocato dal driver di filtro che può essere usato per distinguere tra le strutture di contesto per file create dallo stesso driver di filtro. Il formato di questa variabile è specifico del driver di filtro. I driver di filtro possono impostare questo membro su NULL.

FreeCallback

Puntatore a una routine di callback che libera la struttura del contesto per file. I driver di filtro devono impostare questo membro su un valore non NULL .

Commenti

Per associare le informazioni di contesto a un file, un driver di filtro legacy alloca prima una struttura di FSRTL_PER_FILE_CONTEXT e la inizializza usando FsRtlInsertPerFileContext. Il driver usa quindi FsRtlInsertPerFileContext per associare tale oggetto FSRTL_PER_FILE_CONTEXT al file. Quando il sistema rimuove l'oggetto contesto di file per un file, chiama FsRtlTeardownPerFileContexts che chiama la routine FreeCallback specificata nell'oggetto FSRTL_PER_FILE_CONTEXT . Tale callback deve liberare l'oggetto contesto specifico del driver.

I writer di filtri devono scegliere un valore OwnerID significativo e pratico, ad esempio l'indirizzo di un oggetto driver o di un oggetto dispositivo.

I writer di filtri devono scegliere un valore InstanceID significativo e pratico, ad esempio l'indirizzo dell'oggetto contesto file per il file. Utilizzare la macro FsRtlGetPerFileContextPointer per recuperare tale indirizzo da un oggetto file.

La struttura FSRTL_PER_FILE_CONTEXT può essere usata così come è o incorporata in una struttura di contesto per file definita dal driver.

La struttura FSRTL_PER_FILE_CONTEXT può essere allocata da un pool di paging o non di paging.

La macro FsRtlInitPerFileContext inizializza una struttura FSRTL_PER_FILE_CONTEXT .

Parametri

FileContext

FSRTL_PER_FILE_CONTEXT

Oggetto FSRTL_PER_FILE_CONTEXT da inizializzare.

OwnerId

PVOID

Puntatore a una variabile allocata dal driver di filtro che identifica in modo univoco il proprietario della struttura del contesto per file. Il formato è specifico del driver di filtro. Questo parametro deve avere un valore non NULL .

InstanceId

PVOID

Puntatore a una variabile allocata dal driver di filtro che identifica in modo univoco il proprietario della struttura del contesto per file. Il formato è specifico del driver di filtro. Questo parametro deve avere un valore non NULL .

FreeCallback

PFREE_FUNCTION

Puntatore a una routine di callback che libera la struttura del contesto per file.

Valore restituito

VUOTO

Nessuno.

Questa macro deve essere utilizzata prima di chiamare FsRtlInsertPerFileContext.

I writer di filtri devono scegliere un valore OwnerID significativo e pratico, ad esempio l'indirizzo di un oggetto driver o di un oggetto dispositivo.

I writer di filtri devono usare un valore InstanceID significativo e pratico, ad esempio l'indirizzo dell'oggetto contesto di file per il file. Utilizzare la macro FsRtlGetPerFileContextPointer per recuperare tale indirizzo da un oggetto file.

Per altre informazioni sull'uso e la creazione di oggetti di contesto, vedere Tracking Per-File Context in a Legacy File System Filter Driver.For more information about how to use and create context objects, see Tracking Per-File Context in a Legacy File System Filter Driver.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire daWindows Vista.
Intestazione ntifs.h (include Fltkernel.h, Ntifs.h)

Vedi anche

FsRtlGetPerFileContextPointer

FsRtlInitPerFileContext

FsRtlInsertPerFileContext

FsRtlTeardownPerFileContexts

PFREE_FUNCTION

Rilevamento Per-File contesto in un driver di filtro del file system legacy