次の方法で共有


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\" プレフィックスを付けることができます。 名前の残りの部分には、円記号 (\) を除く任意の文字を含めることができます。 詳細については、「カーネル オブジェクト名前空間を参照してください。 高速ユーザー切り替えは、ターミナル サービス セッションを使用して実装されます。 ログオンする最初のユーザーはセッション 0 を使用し、次にログオンするユーザーはセッション 1 を使用します。 カーネル オブジェクト名は、アプリケーションが複数のユーザーをサポートできるように、ターミナル サービスに関して概説されているガイドラインに従う必要があります。

戻り値

関数が成功した場合、戻り値は指定されたファイル マッピング オブジェクトへの開いているハンドルです。

関数が失敗した場合、戻り値は NULL。 拡張エラー情報を取得するには、GetLastError呼び出します。

備考

OpenFileMapping 返すハンドルは、ファイル マッピング オブジェクトへのハンドルを必要とする任意の関数で使用できます。

マップされたビューを使用してファイルを変更する場合、最後の変更タイムスタンプが自動的に更新されない場合があります。 必要に応じて、呼び出し元 SetFileTime を使用してタイムスタンプを設定する必要があります。

必要がなくなったら、呼び出し元は、CloseHandleの呼び出しで OpenFileMapping 返されたハンドルを解放する必要があります。

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 の

ファイル マッピング関数

メモリ管理機能

ファイルとメモリの を共有する