Condividi tramite


Funzione FsRtlRemovePerFileObjectContext (ntifs.h)

Per un driver di filtro del file system "legacy", la funzione FsRtlRemovePerFileObjectContext scollega una struttura di informazioni di contesto per oggetto per 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 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.

Osservazioni

Un driver di filtro del file system "legacy" chiama FsRtlRemovePerFileObjectContext di scollegare la propria struttura di contesto per oggetto per 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 per file corrispondente 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 oggetto file trovata. Se sono presenti contesti aggiuntivi corrispondenti per oggetto file, il driver del filtro deve chiamare FsRtlRemovePerFileObjectContext quante 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 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 minifiltri del file system non devono usare le funzioni FsRtlXxxPerFileObjectContext. Possono invece usare le funzioni di FltXxxContext appropriate. Per altre informazioni, vedere l'argomento FSRTL_PER_FILEOBJECT_CONTEXT.

Fabbisogno

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

Vedere anche

FSRTL_PER_FILEOBJECT_CONTEXT

FsRtlInitPerFileObjectContext

FsRtlInsertPerFileObjectContext

FsRtlLookupPerFileObjectContext