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 |
---|---|
|
實例或磁碟區正在損毀。 這是錯誤碼。 |
|
實例會連結至網路磁碟區。 這是錯誤碼。 |
備註
不再需要 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 |