Abrufen von Kontexten

Sobald ein Minifiltertreiber einen Kontext für ein Objekt festgelegt hat, kann er den Kontext abrufen, indem er eine der folgenden Get-Routinen aufruft:

Jede erfolgreiche Get-Routine erhöht die Verweisanzahl im Kontext, sodass der Minifilter FltReleaseContext aufruft , wenn er den Kontextzeiger nicht mehr benötigt.

Im folgenden Codebeispiel aus dem SwapBuffers-Beispielminifilter ruft der Minifiltertreiber FltGetVolumeContext auf, um einen Volumekontext abzurufen:

status = FltGetVolumeContext(
 FltObjects->Filter,    //Filter
 FltObjects->Volume,    //Volume
                &volCtx);              //Context
...
if (volCtx != NULL) {
 FltReleaseContext(volCtx);
}

Wenn der Aufruf von FltGetVolumeContext erfolgreich ist, empfängt der Context-Parameter die Adresse des Volumekontexts des Aufrufers. FltGetVolumeContext erhöht die Verweisanzahl für den Kontextzeiger . Wenn dieser Zeiger also nicht mehr benötigt wird, muss der Minifiltertreiber ihn durch Aufrufen von FltReleaseContext freigeben.