PFREE_FUNCTION Funktionszeiger
Ein Dateisystem-Legacyfiltertreiber kann eine PFREE_FUNCTION typisierte Routine als FreeCallback-Rückrufroutine des Filters registrieren. Das Dateisystem ruft FreeCallback auf, wenn das Dateisystem ein Dateikontextobjekt mithilfe von FsRtlTeardownPerFileContexts entfernt oder ein Streamkontextobjekt mithilfe von FsRtlTeardownPerStreamContexts entfernt.
Sie müssen die Rückrufroutine mit dem typ FREE_FUNCTION deklarieren. Weitere Informationen finden Sie im Beispiel im Abschnitt Hinweise.
Syntax
typedef VOID ( *FreeCallback)(
_In_ PVOID Buffer
);
Parameter
- Puffer [in]: Ein Zeiger auf die FSRTL_PER_FILE_CONTEXT oder die FSRTL_PER_STREAM_CONTEXT-Struktur , die freigegeben werden soll.
Rückgabewert
Keine
Bemerkungen
Wenn ein Dateisystem das Dateikontextobjekt für eine Datei löscht, muss es FsRtlTeardownPerFileContexts aufrufen. Diese Routine ruft die FreeCallback-Routinen aller dateispezifischen Kontextstrukturen auf, die der Datei zugeordnet sind. Diese Rückrufroutine muss den für das FSRTL_PER_FILE_CONTEXT-Objekt verwendeten Arbeitsspeicher und alle zugehörigen Kontextinformationen freigeben. Dies gilt auch für Pro-Stream-Kontexte, wenn FsRtlTeardownPerStreamContexts aufgerufen wird und FreeCallback arbeitsspeicher freigibt , der für FSRTL_PER_STREAM_CONTEXT-Objekte verwendet wird.
Hinweise zum Synchronisieren des Zugriffs auf Dateikontextobjekte oder Pro-Stream-Kontextobjekte während eines Aufrufs von FreeCallback finden Sie unter FsRtlTeardownPerFileContexts und FsRtlTeardownPerStreamContexts.
Hinweis
Die FreeCallback-Routine kann nicht rekursiv in das Dateisystem aufrufen oder Dateisystemressourcen abrufen.
Um eine FreeCallback-Rückruffunktion namens MyFreeFunction zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die die Static Driver Verifier (SDV) und andere Überprüfungstools wie folgt benötigen:
FREE_FUNCTION MyFreeFunction;
Implementieren Sie dann Ihre Rückruffunktion wie folgt:
VOID
MyFreeFunction (
__in PVOID Buffer
)
{...}
Anforderungen
Anforderungstyp | Anforderung |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Header | Wdm.h (Einschließen von Wdm.h oder Ntddk.h) |
IRQL | <= APC_LEVEL |
Weitere Informationen
FsRtlTeardownPerStreamContexts
Nachverfolgen Per-File Kontexts in einem Legacy-Dateisystemfiltertreiber
Nachverfolgen Per-Stream Kontexts in einem Legacy-Dateisystemfiltertreiber