Macro FsRtlInitPerStreamContext (ntifs.h)
La macro FsRtlInitPerStreamContext inizializza una struttura del contesto del driver di filtro.
Sintassi
void FsRtlInitPerStreamContext(
_fc,
_owner,
_inst,
_cb
);
Parametri
_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.
Valore restituito
nessuno
Osservazioni
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.
Requisiti
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 |
Vedi anche
FsRtlGetPerStreamContextPointer