(wdm.h) IoGetDriverDirectory 函式
傳回磁碟上驅動程式可讀取和寫入檔案之目錄的句柄。 該目錄中的檔案會套用至特定的驅動程序物件。
語法
NTSTATUS IoGetDriverDirectory(
[_In_] PDRIVER_OBJECT DriverObject,
[_In_] DRIVER_DIRECTORY_TYPE DirectoryType,
[_In_] ULONG Flags,
[_Out_] PHANDLE DriverDirectoryHandle
);
參數
[_In_] DriverObject
驅動程式物件的指標, (呼叫 驅動程式) DRIVER_OBJECT 結構。
[_In_] DirectoryType
指出所要求目錄類型的 _DRIVER_DIRECTORY_TYPE型別值。
[_In_] Flags
必須是 0。
[_Out_] DriverDirectoryHandle
接收所要求驅動程序目錄句柄之變數的指標。 呼叫端不得傳遞 NULL。
傳回值
傳回適當的 NTSTATUS值。 可能的值包括:
錯誤碼 | 描述 |
---|---|
STATUS_SUCCESS | 呼叫已成功開啟要求的驅動程序目錄句柄。 |
STATUS_INVALID_PARAMETER | 此函式的輸入值無效。 例如, DriverObject 或 DriverDirectoryHandle 為 NULL; 旗標 不是 0。 |
備註
如果在啟動必要的磁碟和磁碟區之前呼叫 IoGetDriverDirectory ,函式不會開啟句柄並傳回錯誤。
驅動程式通常會使用 ZwOpenFile 和 ZwCreateFile 來存取/建立檔案。 這些函式的其中一個參數是 OBJECT_ATTRIBUTES 結構,其中包含物件名稱和根目錄。 如果根目錄是 NULL,則物件名稱必須是完整路徑。 不過,如果您提供根目錄的句柄,則物件名稱必須相對於檔案中的物件 (,該目錄) ,句柄所代表。
IoGetDriverDirectory 呼叫成功之後,請使用收到的 HANDLE 作為您傳遞至 ZwOpenFile 和 ZwCreateFile之OBJECT_ATTRIBUTES中的根目錄。
當不再需要存取時,驅動程式必須呼叫 ZwClose 以關閉收到的句柄。
IoGetDriverDirectory 的呼叫端必須在 IRQL = PASSIVE_LEVEL系統線程的內容中執行。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 (版本 1803) |
標頭 | wdm.h |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |