OpenFileMappingA 函式 (winbase.h)
開啟具名檔案對應物件。
語法
HANDLE OpenFileMappingA(
[in] DWORD dwDesiredAccess,
[in] BOOL bInheritHandle,
[in] LPCSTR lpName
);
參數
[in] dwDesiredAccess
檔案對應物件的存取權。 此存取會針對目標檔案對應物件上的任何安全性描述項進行檢查。 如需值清單,請參閱 檔案對應安全性和存取權限。
[in] bInheritHandle
如果此參數 TRUE,則 CreateProcess 函式所建立的進程可以繼承句柄;否則,無法繼承句柄。
[in] lpName
要開啟的檔案對應物件名稱。 如果依這個名稱開啟檔案對應物件的句柄,而且對應物件上的安全性描述元不會與 dwDesiredAccess 參數衝突,開啟作業就會成功。 名稱可以有 「Global\」 或 「Local\」 前置詞,以明確開啟全域或會話命名空間中的物件。 名稱的其餘部分可以包含反斜杠字元 (\) 以外的任何字元。 如需詳細資訊,請參閱 Kernel Object Namespaces。 使用終端機服務會話實作快速使用者切換。 第一個登入的使用者會使用會話 0、下一個登入的使用者會使用會話 1 等等。 核心物件名稱必須遵循終端機服務概述的指導方針,應用程式才能支援多個使用者。
傳回值
如果函式成功,傳回值會是指定檔案對應對象的開啟句柄。
如果函式失敗,則傳回值 NULL。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
言論
OpenFileMapping 傳回的句柄可以與需要檔案對應物件的句柄的任何函式搭配使用。
透過對應檢視修改檔案時,可能不會自動更新上次修改時間戳。 如有需要,呼叫端應該使用 SetFileTime 來設定時間戳。
不再需要時,呼叫端應該釋放 openFileMapping 所傳回的句柄, 呼叫 closeHandle 。
在 Windows Server 2012 中,下列技術支援此功能。
科技 | 支援 |
---|---|
伺服器消息塊 (SMB) 3.0 通訊協定 | 是的 |
SMB 3.0 透明故障轉移 (TFO) | 是的 |
具有向外延展檔案共用的SMB 3.0(SO) | 是的 |
叢集共用磁碟區檔案系統 (CsvFS) | 是的 |
復原檔案系統 (ReFS) | 是的 |
例子
如需範例,請參閱 建立具名共用記憶體。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
支援的最低伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | winbase.h (包括 Windows.h、Memoryapi.h) |
連結庫 | Kernel32.lib |
DLL | Kernel32.dll |
另請參閱
記憶體管理功能