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.
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
FsRtlGetPerStreamContextPointer
FsRtlTeardownPerStreamContexts
Rilevamento Per-Stream contesto in un driver di filtro del file system legacy