共用方式為


開啟檔案的操作代號

若要開啟檔案的控制代碼,請執行下列步驟:

  1. 建立 OBJECT_ATTRIBUTES 結構,並呼叫 InitializeObjectAttributes 巨集來初始化結構。 您將檔案的物件名稱指定為 ObjectName 參數,用於 InitializeObjectAttributes

  2. OBJECT_ATTRIBUTES 結構傳遞至 IoCreateFileZwCreateFileZwOpenFile,以開啟檔案的句柄。

    如果檔案不存在,IoCreateFileZwCreateFile 會建立它,而 ZwOpenFile 會傳回STATUS_OBJECT_NAME_NOT_FOUND。

請注意,驅動程式幾乎一律使用 ZwCreateFileZwOpenFile,而不是 IoCreateFile

當您呼叫 IoCreateFileZwCreateFileZwOpenFile時,Windows 主管會建立新的檔案物件來代表檔案,並提供對象的開啟句柄。 此檔案物件會保存,直到您關閉所有開啟的句柄為止。

無論您呼叫哪一個例程,都必須傳遞所需的訪問許可權,作為 DesiredAccess 參數。 這些許可權必須涵蓋驅動程式將執行的所有作業。 下表列出這些作業和相應的存取權限請求。

行動 必要的訪問許可權

從檔案讀取。

FILE_READ_DATA或GENERIC_READ

寫入檔案。

FILE_WRITE_DATA或GENERIC_WRITE

僅往檔案末尾寫入。

FILE_APPEND_DATA

讀取檔案的元數據,例如檔案的建立時間。

FILE_READ_ATTRIBUTES或GENERIC_READ

寫入檔案的元數據,例如檔案的建立時間。

FILE_WRITE_ATTRIBUTES或GENERIC_WRITE

如需 DesiredAccess可用值的詳細資訊,請參閱 ZwCreateFile