FltOpenVolume-Funktion (fltkernel.h)
Die FltOpenVolume Routine gibt ein Handle und einen Dateiobjektzeiger für das Dateisystemvolume zurück, an das eine bestimmte Minifiltertreiberinstanz angefügt ist.
Syntax
NTSTATUS FLTAPI FltOpenVolume(
[in] PFLT_INSTANCE Instance,
[out] PHANDLE VolumeHandle,
[out] PFILE_OBJECT *VolumeFileObject
);
Parameter
[in] Instance
Undurchsichtiger Instanzzeiger für die Instanz. Diese Instanz muss an ein lokales Volume angefügt werden.
[out] VolumeHandle
Handle für das Dateisystemvolume.
[out] VolumeFileObject
Zeigen Sie auf eine vom Aufrufer zugewiesene Variable, die einen Dateiobjektzeiger für das Stammverzeichnis des Volumes empfängt. Dieser Parameter ist optional und kann NULL-werden.
Rückgabewert
FltOpenVolume gibt STATUS_SUCCESS oder einen geeigneten NTSTATUS-Wert wie den folgenden zurück:
Rückgabecode | Beschreibung |
---|---|
|
Die Instanz oder das Volume wird heruntergerissen. Dies ist ein Fehlercode. |
|
Die Instanz ist an ein Netzwerkvolume angefügt. Dies ist ein Fehlercode. |
Bemerkungen
Wenn das im VolumeHandle- Parameter zurückgegebene Handle nicht mehr benötigt wird, muss der Aufrufer es freigeben, indem FltCloseaufgerufen wird. Daher muss jeder erfolgreiche Aufruf von FltOpenVolume mit einem nachfolgenden Aufruf von FltCloseabgeglichen werden.
Wenn ein Dateiobjektzeiger im VolumeFileObject Parameter zurückgegeben wird, muss der Aufrufer ihn freigeben, wenn er nicht mehr benötigt wird, indem ObDereferenceObjectaufgerufen wird.
Die vom parameter Instance angegebene Instanz muss an ein lokales Volume angefügt werden. Wenn es an ein Netzwerkvolume angefügt ist, gibt FltOpenVolume STATUS_INVALID_PARAMETER zurück.
Rufen Sie FltGetDeviceObjectauf, um einen Zeiger auf das Geräteobjekt für ein bestimmtes Volume abzurufen.
Rufen Sie FltQueryVolumeInformationauf, um detaillierte Informationen über das Volume abzurufen, an das eine bestimmte Instanz angefügt ist.
HINWEIS: Rufen Sie diese Routine nicht mit einem IRP-Wert auf nicht NULL-Ebene auf, da dies zu einem System-Deadlock führen kann. Um festzustellen, ob der Thread TopLevelIrp festgelegt wird, rufen Sie IoGetTopLevelIrpauf.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Microsoft Windows 2000 UpdateRollup 1 für SP4, Windows XP SP3, Windows Server 2003 SP1 und höheren Versionen des Windows-Betriebssystems. |
Zielplattform- | Universal |
Header- | fltkernel.h (include Fltkernel.h) |
Library | FltMgr.lib |
DLL- | Fltmgr.sys |
IRQL- | PASSIVE_LEVEL |