Macro FsRtlInitPerStreamContext (ntifs.h)
La macro FsRtlInitPerStreamContext inizializza una struttura del contesto del driver di filtro.
void FsRtlInitPerStreamContext(
_fc,
_owner,
_inst,
_cb
);
_fc
Puntatore a una struttura FSRTL_PER_STREAM_CONTEXT allocata dal chiamante da usare per mantenere le informazioni di contesto per un flusso di file. Questa struttura può essere usata come è o incorporata in una struttura di contesto per flusso definita dal driver. Entrambi i tipi di struttura vengono comunemente allocati chiamando ExAllocatePoolWithTag.
_owner
Puntatore a una variabile allocata dal chiamante che identifica in modo univoco il proprietario della struttura del contesto per flusso. Il formato di questa variabile è il driver di filtro - specifico. 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 chiamanti devono specificare un valore non NULL per questo parametro.
_inst
Puntatore a un driver di filtro - variabile allocata che può essere usata per distinguere tra le strutture di contesto per flusso create dallo stesso driver di filtro. Il formato di questa variabile è il driver di filtro - specifico. 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, utilizzare la macro FsRtlGetPerStreamContextPointer . Questo parametro è facoltativo e può essere NULL.
_cb
Puntatore a una routine di callback che libera la struttura del contesto per flusso. I chiamanti devono specificare un valore non NULL per questo parametro. Questa routine e i relativi parametri sono definiti come segue:
typedef VOID (*PFREE_FUNCTION) ( IN PVOID Buffer ); |
- Buffer
Puntatore alla struttura del contesto per flusso da liberare. La routine FreeCallback esegue in genere il cast di questo puntatore al tipo di puntatore di struttura appropriato e lo libera chiamando ExFreePool.
nessuno
Un driver di filtro del file system usa la macro FsRtlInitPerStreamContext per inizializzare una struttura di contesto per flusso appena allocata prima di associarla a un flusso di file. La struttura del contesto inizializzata può essere passata come parametro a FsRtlInsertPerStreamContext.
FsRtlInitPerStreamContext archivia l'indirizzo della routine FreeCallback nel membro FreeCallback della struttura FSRTL_PER_STREAM_CONTEXT.
La routine FreeCallback viene chiamata in IRQL <= APC_LEVEL. In genere, viene chiamato in IRQL PASSIVE_LEVEL.
Dopo che la struttura di contesto è stata associata a un flusso di file, può essere recuperata chiamando FsRtlLookupPerStreamContext o rimossa chiamando FsRtlRemovePerStreamContext.
Per altre informazioni, vedere Tracking 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.
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP; Aggiornamento cumulativo per Windows 2000 Service Pack 4 (SP4) |
Piattaforma di destinazione | Desktop |
Intestazione | ntifs.h (include Ntifs.h) |
IRQL | Qualsiasi livello |
FsRtlGetPerStreamContextPointer