Funzione FsRtlRemovePerFileObjectContext (ntifs.h)

Per un driver di filtro del file system "legacy", la funzione FsRtlRemovePerFileObjectContext scollega una struttura di informazioni sul contesto per oggetto file dall'elenco di contesti per oggetto file precedentemente associati a un oggetto file.

Sintassi

PFSRTL_PER_FILEOBJECT_CONTEXT FsRtlRemovePerFileObjectContext(
  [in]           PFILE_OBJECT FileObject,
  [in, optional] PVOID        OwnerId,
  [in, optional] PVOID        InstanceId
);

Parametri

[in] FileObject

Puntatore a un oggetto file per il quale rimuovere le informazioni sul contesto.

[in, optional] OwnerId

Puntatore a una variabile allocata dal chiamante che identifica in modo univoco il filtro proprietario della struttura del contesto per ogni oggetto file. Il formato di questa variabile è specifico del driver di filtro.

[in, optional] InstanceId

Puntatore a una variabile allocata dal chiamante che può essere usata per distinguere tra le strutture di contesto per oggetto file create dallo stesso driver di filtro. Il formato di questa variabile è specifico del driver di filtro. Questo parametro è facoltativo e può essere NULL.

Valore restituito

FsRtlRemovePerFileObjectContext scollega e restituisce un puntatore al primo contesto corrispondente per oggetto file trovato. Se non viene trovata alcuna corrispondenza, FsRtlRemovePerFileObjectContext restituisce NULL.

Commenti

Un driver di filtro del file system "legacy" chiama FsRtlRemovePerFileObjectContext per scollegare la propria struttura di contesto per oggetto file dall'elenco di contesti per oggetto file associati all'oggetto file. Tutte queste strutture di contesto devono essere state precedentemente associate all'oggetto file chiamando FsRtlInsertPerFileObjectContext.

Se la chiamata a FsRtlRemovePerFileObjectContext ha esito positivo, la prima struttura del contesto per oggetto file corrispondente a OwnerId (e InstanceId, se presente) viene scollegata e viene restituito un puntatore. Questo puntatore può essere usato dal driver di filtro per liberare la struttura del contesto non collegato.

NotaFsRtlRemovePerFileObjectContext scollega solo la prima struttura di contesto corrispondente per ogni oggetto file trovata. Se sono presenti altri contesti corrispondenti per oggetto file, il driver di filtro deve chiamare FsRtlRemovePerFileObjectContext tutte le volte necessario per scollegarli tutti.
 
Per inizializzare una struttura di contesto per oggetto file, utilizzare la macro FsRtlInitPerFileObjectContext .

Per associare una struttura di contesto inizializzata per oggetto file a un oggetto file, utilizzare la funzione FsRtlInsertPerFileObjectContext .

Per recuperare una struttura di contesto per oggetto file associata a un oggetto file, utilizzare la funzione FsRtlLookupPerFileObjectContext .

Nota I driver di filtro legacy devono chiamare la funzione FsRtlRemovePerFileObjectContext per scollegare e liberare la struttura delle informazioni di contesto prima del completamento di IRP_MJ_CLOSE. In caso contrario, la memoria allocata a tale struttura di contesto verrà persa.
 
Inoltre, i driver minifilter del file system non devono usare le funzioni FsRtlXxxPerFileObjectContext . Possono invece usare le funzioni FltXxxContext appropriate. Per altre informazioni, vedere l'argomento FSRTL_PER_FILEOBJECT_CONTEXT .

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Piattaforma di destinazione Universale
Intestazione ntifs.h (include Fltkernel.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Vedi anche

FSRTL_PER_FILEOBJECT_CONTEXT

FsRtlInitPerFileObjectContext

FsRtlInsertPerFileObjectContext

FsRtlLookupPerFileObjectContext