FSRTL_PER_STREAM_CONTEXT struttura (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;

Members

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 flusso per un flusso di file. Per ottenere un puntatore all'intestazione dell'elenco da un oggetto file, usare la macro FsRtlGetPerStreamContextPointer e eseguire il cast del risultato in un puntatore PFSRTL_ADVANCED_FCB_HEADER . Il puntatore di elenco è il membro FilterContexts nella struttura di intestazione FCB (Advanced File Control Block) per il flusso di file.

OwnerId

Puntatore a una variabile allocata filtro-driver che identifica in modo univoco il proprietario della struttura di 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 valore non NULL .

InstanceId

Puntatore a una variabile allocata da 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 FsRtlGetPerStreamContextPointer .

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.

Commenti

I driver di filtro del file system possono usare una struttura FSRTL_PER_STREAM_CONTEXT per mantenere le informazioni di contesto per un flusso di file. Questa struttura può essere usata 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 tutte le 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 a pagine.

La macro FsRtlSupportsPerStreamContexts determina se un file system supporta contesti per flusso per ogni 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 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 Rilevamento Per-Stream contesto in un driver di filtro del file system legacy.

Requisiti

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

Vedi anche

FSRTL_ADVANCED_FCB_HEADER

FSRTL_COMMON_FCB_HEADER

FsRtlGetPerStreamContextPointer

FsRtlInsertPerStreamContext

FsRtlLookupPerStreamContext

FsRtlRemovePerStreamContext

FsRtlTeardownPerStreamContexts

PFREE_FUNCTION

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