Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
FltSetVolumeContext legt einen Kontext für ein Volume fest.
Syntax
NTSTATUS FLTAPI FltSetVolumeContext(
[in] PFLT_VOLUME Volume,
[in] FLT_SET_CONTEXT_OPERATION Operation,
[in] PFLT_CONTEXT NewContext,
[out, optional] PFLT_CONTEXT *OldContext
);
Parameter
[in] Volume
Undurchsichtiger Volumezeiger für das Volume.
[in] Operation
Flag, das Details des auszuführenden Vorgangs angibt. Dieser Parameter muss eine der folgenden Sein:
| Flagge | Bedeutung |
|---|---|
| FLT_SET_CONTEXT_REPLACE_IF_EXISTS | Wenn bereits ein Kontext für Volumefestgelegt ist, ersetzt FltSetVolumeContext- ihn durch NewContext->. Andernfalls wird NewContext- in die Liste der Kontexte für das Volume eingefügt. |
| FLT_SET_CONTEXT_KEEP_IF_EXISTS | Wenn für dieses Volume bereits ein Kontext festgelegt ist, gibt FltSetVolumeContext- STATUS_FLT_CONTEXT_ALREADY_DEFINED zurück und ersetzt nicht den vorhandenen Kontext oder erhöht die Verweisanzahl. Wenn noch kein Kontext festgelegt wurde, fügt die Routine NewContext- in die Liste der Kontexte für das Volume ein und erhöht die Referenzanzahl. |
[in] NewContext
Zeiger auf den neuen Kontext, der für das Volume festgelegt werden soll. Dieser Parameter ist erforderlich und kann nicht NULL-werden.
[out, optional] OldContext
Zeiger auf eine vom Aufrufer zugewiesene Variable, die die Adresse des vorhandenen Volumekontexts für Volumeempfängt. Dieser Parameter ist optional und kann NULL-werden. Weitere Informationen zu diesem Parameter finden Sie im folgenden Abschnitt "Hinweise".
Rückgabewert
FltSetVolumeContext gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert wie einen der folgenden zurück:
| Rückgabecode | Beschreibung |
|---|---|
| STATUS_FLT_CONTEXT_ALREADY_DEFINED | WENN FLT_SET_CONTEXT_KEEP_IF_EXISTS für Operationangegeben wurde, gibt dieser Fehlercode an, dass ein Kontext bereits an das Volume angefügt ist. |
| STATUS_FLT_CONTEXT_ALREADY_LINKED | Der kontext, auf den der NewContext Parameter verweist, ist bereits mit einem Objekt verknüpft. Mit anderen Worten: Dieser Fehlercode gibt an, dass NewContext- aufgrund eines erfolgreichen vorherigen Aufrufs eines FltSetXxxContext Routine bereits verwendet wird. |
| STATUS_FLT_DELETING_OBJECT | Das angegebene Volume- wird heruntergerissen. Dies ist ein Fehlercode. |
| STATUS_INVALID_PARAMETER | Ein ungültiger Parameter wurde übergeben. Der parameter NewContext zeigt beispielsweise nicht auf einen gültigen Volumekontext, oder für Operationwurde ein ungültiger Wert angegeben. Dies ist ein Fehlercode. |
Bemerkungen
Weitere Informationen zu Kontexten finden Sie unter Informationen zu Minifilterkontexten.
Ein Minifiltertreiber ruft FltSetVolumeContext- auf, um einen Kontext an ein Volume anzufügen oder einen vorhandenen Volumekontext zu entfernen oder zu ersetzen. Ein Minifiltertreiber kann nur einen Kontext an ein Volume anfügen.
Referenzzählung
Wenn FltSetVolumeContext erfolgreich ist:
- Die Verweisanzahl für NewContext- erhöht wird. Wenn NewContext- nicht mehr benötigt wird, muss der Minifilter FltReleaseContext- aufrufen, um die Referenzanzahl zu verringern.
Else if FltSetVolumeContext fails:
- Die Verweisanzahl für NewContext- bleibt unverändert.
- Wenn OldContext- nicht NULL- ist und nicht auf NULL_CONTEXT verweist, ist OldContext- ein Verweis auf den Kontext, der derzeit dem Volume zugeordnet ist. Der Filteraufruf FltSetVolumeContext- muss FltReleaseContext- für OldContext- aufrufen, wenn der Kontextzeiger nicht mehr benötigt wird.
Unabhängig vom Erfolg:
- Der Filteraufruf FltSetVolumeContext- muss FltReleaseContext- aufrufen, um die Verweisanzahl für das NewContext-Objekt zu erhöhen, das von FltAllocateContexterhöht wurde.
Weitere Informationen finden Sie unter Verweisen auf Kontexte.
Andere Kontextvorgänge
Weitere Informationen finden Sie unter Festlegen von Kontextenund Freigeben von Kontexten:
Rufen Sie FltAllocateContextauf, um einen neuen Kontext zuzuweisen.
Rufen Sie FltGetVolumeContext-auf, um einen Volumekontext abzurufen.
Rufen Sie zum Löschen eines Volumekontexts FltDeleteVolumeContext oder FltDeleteContext-auf.
Anforderungen
| Anforderung | Wert |
|---|---|
| mindestens unterstützte Client- | Verfügbar und unterstützt in Microsoft Windows 2000 Update Rollup 1 für SP4, Windows XP SP2, Windows Server 2003 SP1 und höher. |
| Zielplattform- | Universal |
| Header- | fltkernel.h (include Fltkernel.h) |
| Library | FltMgr.lib |
| DLL- | Fltmgr.sys |
| IRQL- | <= APC_LEVEL |