puntatore a funzione PFREE_FUNCTION
Un driver di filtro legacy del file system può registrare una routine tipizzata PFREE_FUNCTION come routine di callback FreeCallback del filtro. Il file system chiama FreeCallback quando il file system rimuove un oggetto contesto di file tramite FsRtlTeardownPerFileContexts o rimuove un oggetto contesto di flusso tramite FsRtlTeardownPerStreamContexts.
È necessario dichiarare la routine di callback usando il tipo di FREE_FUNCTION . Per altre informazioni, vedere l'esempio nella sezione Osservazioni.
Sintassi
typedef VOID ( *FreeCallback)(
_In_ PVOID Buffer
);
Parametri
- Buffer [in]: puntatore al FSRTL_PER_FILE_CONTEXT o alla struttura FSRTL_PER_STREAM_CONTEXT da liberare.
Valore restituito
nessuno
Osservazioni
Quando un file system elimina l'oggetto contesto per file per un file, deve chiamare FsRtlTeardownPerFileContexts. Questa routine chiama le routine FreeCallback di tutte le strutture di contesto per file associate al file. Questa routine di callback deve liberare qualsiasi memoria utilizzata per l'oggetto FSRTL_PER_FILE_CONTEXT ed eventuali informazioni di contesto associate. Questo vale anche per i contesti per flusso quando viene chiamato FsRtlTeardownPerStreamContexts e FreeCallback libera memoria usata per gli oggetti FSRTL_PER_STREAM_CONTEXT .
Per le osservazioni sulla sincronizzazione dell'accesso a oggetti contesto per file o a oggetti di contesto per flusso durante una chiamata a FreeCallback, vedere FsRtlTeardownPerFileContexts e FsRtlTeardownPerStreamContexts.
Nota
La routine FreeCallback non può chiamare in modo ricorsivo nel file system o acquisire risorse del file system.
Per definire una funzione di callback FreeCallback denominata MyFreeFunction, è innanzitutto necessario specificare una dichiarazione di funzione richiesta dall'SDV (Static Driver Verifier ) e da altri strumenti di verifica, come indicato di seguito:
FREE_FUNCTION MyFreeFunction;
Implementare quindi la funzione di callback come indicato di seguito:
VOID
MyFreeFunction (
__in PVOID Buffer
)
{...}
Requisiti
Tipo di requisito | Requisito |
---|---|
Client minimo supportato | Windows Vista |
Intestazione | Wdm.h (include Wdm.h o Ntddk.h) |
IRQL | <= APC_LEVEL |
Vedi anche
FsRtlTeardownPerStreamContexts
Rilevamento Per-File contesto in un driver di filtro del file system legacy
Rilevamento Per-Stream contesto in un driver di filtro del file system legacy