共用方式為


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

另請參閱

CreateFileMapping

檔案對應函式

記憶體管理功能

共用檔案和記憶體