共用方式為


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 值,如下所示:

傳回碼 描述
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 更新匯總 1。
目標平臺 普遍
標頭 fltkernel.h (包括 Fltkernel.h)
連結庫 FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

另請參閱

FltClose

FltGetDeviceObject

FltGetFilterFromInstance

FltObjectDereference

FltQueryVolumeInformation

ObDereferenceObject