共用方式為


FltOpenVolume 函式 (fltkernel.h)

FltOpenVolume 例程會傳回指定迷你篩選驅動程序實例所附加文件系統磁碟區的句柄和檔案物件指標。

語法

NTSTATUS FLTAPI FltOpenVolume(
  [in]  PFLT_INSTANCE Instance,
  [out] PHANDLE       VolumeHandle,
  [out] PFILE_OBJECT  *VolumeFileObject
);

參數

[in] Instance

實例的不透明實例指標。 這個實例必須附加至本機磁碟區。

[out] VolumeHandle

檔系統磁碟區的句柄。

[out] VolumeFileObject

呼叫端配置的變數指標,該變數會接收磁碟區根目錄的檔案對象指標。 這個參數是選擇性的,而且可以是 NULL

傳回值

FltOpenVolume 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,如下所示:

傳回碼 Description
STATUS_FLT_DELETING_OBJECT
實例或磁碟區正在損毀。 這是錯誤碼。
STATUS_INVALID_PARAMETER
實例會連結至網路磁碟區。 這是錯誤碼。

備註

不再需要 VolumeHandle 參數中傳回的句柄時,呼叫端必須呼叫 FltClose 來釋放它。 因此 ,每次成功呼叫 FltOpenVolume 都必須與 後續呼叫 FltClose 相符。

如果在 VolumeFileObject 參數中傳回檔案對象指標,呼叫端必須藉由呼叫 ObDereferenceObject 來釋放它。

Instance 參數指定的實例必須附加至本機磁碟區。 如果連結至網路磁碟區, FltOpenVolume 會傳回STATUS_INVALID_PARAMETER。

若要取得指定磁碟區的裝置物件的指標,請呼叫 FltGetDeviceObject

若要取得指定實例所附加磁碟區的詳細資訊,請呼叫 FltQueryVolumeInformation

注意:請勿使用非 NULL 最上層 IRP 值呼叫此例程,因為這可能會導致系統死結。 判斷線程 TopLevelIrp 是否已設定呼叫 IoGetTopLevelIrp

規格需求

需求
最低支援的用戶端 適用於 SP4、Windows XP SP3、Windows Server 2003 SP1 和更新版本的 Windows 操作系統的 Microsoft Windows 2000 Update 匯總 1。
目標平台 Universal
標頭 fltkernel.h (包含 Fltkernel.h)
程式庫 FltMgr.lib
Dll Fltmgr.sys
IRQL PASSIVE_LEVEL

另請參閱

FltClose

FltGetDeviceObject

FltGetFilterFromInstance

FltObjectDereference

FltQueryVolumeInformation

ObDereferenceObject