FltOpenVolume-Funktion (fltkernel.h)
Die FltOpenVolume-Routine gibt ein Handle und einen Dateiobjektzeiger für das Dateisystemvolume zurück, an das ein bestimmter Minifiltertreiber instance angefügt ist.
Syntax
NTSTATUS FLTAPI FltOpenVolume(
[in] PFLT_INSTANCE Instance,
[out] PHANDLE VolumeHandle,
[out] PFILE_OBJECT *VolumeFileObject
);
Parameter
[in] Instance
Undurchsichtiger instance Zeiger für die instance. Diese instance muss an ein lokales Volume angefügt werden.
[out] VolumeHandle
Handle für das Dateisystemvolume.
[out] VolumeFileObject
Zeiger auf eine vom Aufrufer zugewiesene Variable, die einen Dateiobjektzeiger für das Stammverzeichnis des Volumes empfängt. Dieser Parameter ist optional und kann NULL sein.
Rückgabewert
FltOpenVolume gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert wie den folgenden zurück:
Rückgabecode | Beschreibung |
---|---|
|
Das instance oder Volume wird abgerissen. Dies ist ein Fehlercode. |
|
Die instance ist an ein Netzwerkvolume angefügt. Dies ist ein Fehlercode. |
Hinweise
Wenn das im VolumeHandle-Parameter zurückgegebene Handle nicht mehr benötigt wird, muss der Aufrufer es durch Aufrufen von FltClose freigeben. Daher muss jeder erfolgreiche Aufruf von FltOpenVolume durch einen nachfolgenden Aufruf von FltClose abgeglichen werden.
Wenn ein Dateiobjektzeiger im VolumeFileObject-Parameter zurückgegeben wird, muss der Aufrufer ihn freigeben, wenn er nicht mehr benötigt wird, indem ObDereferenceObject aufgerufen wird.
Die durch den Instance-Parameter angegebene instance muss an ein lokales Volume angefügt werden. Wenn es an ein Netzwerkvolume angefügt ist, gibt FltOpenVolume STATUS_INVALID_PARAMETER zurück.
Um einen Zeiger auf das Geräteobjekt für ein bestimmtes Volume abzurufen, rufen Sie FltGetDeviceObject auf.
Rufen Sie FltQueryVolumeInformation auf, um detaillierte Informationen über das Volume abzurufen, an das ein instance angefügt ist.
HINWEIS: Rufen Sie diese Routine nicht mit einem Nicht-NULL-IRP-Wert der obersten Ebene auf, da dies zu einem System deadlock führen kann. Um zu bestimmen, ob der Thread TopLevelIrp festgelegt ist, rufen Sie IoGetTopLevelIrp auf.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (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 | Universell |
Header | fltkernel.h (include Fltkernel.h) |
Bibliothek | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |