Condividi tramite


struttura FSRTL_PER_STREAM_CONTEXT (ntifs.h)

La struttura FSRTL_PER_STREAM_CONTEXT contiene informazioni di contesto che un driver di filtro del file system gestisce su un flusso di file.

Sintassi

typedef struct _FSRTL_PER_STREAM_CONTEXT {
  LIST_ENTRY     Links;
  PVOID          OwnerId;
  PVOID          InstanceId;
  PFREE_FUNCTION FreeCallback;
} FSRTL_PER_STREAM_CONTEXT, *PFSRTL_PER_STREAM_CONTEXT;

Membri

Links

Collegamento per questa struttura nell'elenco di tutte le strutture di contesto per flusso associate allo stesso flusso di file. FsRtlInsertPerStreamContext inserisce questo membro nell'elenco di tutte le strutture di contesto per flusso per un flusso di file. Per ottenere un puntatore all'inizio dell'elenco da un oggetto file, utilizzare il FsRtlGetPerStreamContextPointer macro ed eseguire il cast del risultato in un puntatore PFSRTL_ADVANCED_FCB_HEADER. Il puntatore di elenco è il FilterContexts membro nella struttura di intestazione FCB (Advanced File Control Block) per il flusso di file.

OwnerId

Puntatore a una variabile allocata da filter-driver che identifica in modo univoco il proprietario della struttura del contesto per flusso. Il formato di questa variabile è specifico del driver di filtro. I writer di filtri devono scegliere un valore significativo e pratico, ad esempio l'indirizzo di un oggetto driver o di un oggetto dispositivo. I driver di filtro devono impostare questo membro su un valoreNULL.

InstanceId

Puntatore a una variabile allocata tramite filtro driver che può essere usata per distinguere tra le strutture di contesto per flusso create dallo stesso driver di filtro. Il formato di questa variabile è specifico del driver di filtro. I writer di filtri devono scegliere un valore significativo e pratico, ad esempio l'indirizzo dell'oggetto contesto di flusso per il flusso di file. Per ottenere questo indirizzo da un oggetto file, usare la macro FsRtlGetPerStreamContextPoint er.

Questo membro è facoltativo e può essere NULL.

FreeCallback

Puntatore a una routine di callback che libera la struttura del contesto per flusso. Questa routine e i relativi parametri sono definiti come segue:

VOID
(*PFREE_FUNCTION) (
     IN PVOID Buffer
     );

Buffer

Puntatore alla struttura FSRTL_PER_STREAM_CONTEXT da liberare.

Osservazioni

I driver di filtro del file system possono usare una struttura di FSRTL_PER_STREAM_CONTEXT per mantenere le informazioni di contesto per un flusso di file. Questa struttura può essere usata così come è o incorporata in una struttura di contesto definita dal driver per flusso.

Quando un file system rimuove l'oggetto contesto di flusso per un flusso di file, deve chiamare FsRtlTeardownPerStreamContexts, che a sua volta chiama le routine FreeCallback di tutte le strutture di contesto per flusso associate al flusso di file.

Nota La routine FreeCallback non può chiamare in modo ricorsivo nel file system o acquisire risorse del file system. Inoltre, questa routine deve presupporre che l'oggetto file per il flusso di file sia già stato liberato.
 
La struttura FSRTL_PER_STREAM_CONTEXT può essere allocata da un pool di pagine o non di paging.

La macro FsRtlSupportsPerStreamContexts determina se un file system supporta contesti per flusso per un determinato flusso di file.

BOOLEAN FsRtlSupportsPerStreamContexts(
  [in] PFILE_OBJECT FileObject
);

Parametri

FileObject [in]

PFILE_OBJECT

Puntatore a un oggetto file per il flusso di file.

Valore restituito

BOOLEAN

La macro FsRtlSupportsPerStreamContexts restituisce TRUE se il file system supporta contesti per flusso per il flusso di file, FALSE in caso contrario.

I driver di filtro del file system chiamano FsRtlSupportsPerStreamContexts per determinare se il file system sottostante supporta i contesti per flusso per il flusso di file rappresentato da un determinato oggetto file. Si noti che un file system potrebbe supportare contesti per flusso per alcuni tipi di file, ma non per altri. Ad esempio, NTFS e FAT non supportano attualmente contesti per flusso per i file di paging.

Per altre informazioni, vedere Per-Stream Context in a Legacy File System Filter Driver.For more information, see Tracking Per-Stream Context in a Legacy File System Filter Driver.

Fabbisogno

Requisito Valore
client minimo supportato Questa struttura è Windows XP
intestazione ntifs.h (include Ntifs.h)

Vedere anche

FSRTL_ADVANCED_FCB_HEADER

FSRTL_COMMON_FCB_HEADER

FsRtlGetPerStreamContextPointer

FsRtlInsertPerStreamContext

FsRtlLookupPerStreamContext

FsRtlRemovePerStreamContext

FsRtlTeardownPerStreamContexts

PFREE_FUNCTION

contesto Per-Stream di rilevamento in un driver di filtro del file system legacy