共用方式為


開啟檔案的控制碼

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

  1. 建立 OBJECT_ATTRIBUTES 結構,並呼叫 InitializeObjectAttributes 宏來初始化結構。 您可以將檔案的物件名稱指定為InitializeObjectAttributesObjectName參數。

  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