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 を使用してタイムスタンプを設定する必要があります。
必要がなくなったら、呼び出し元は 、OpenFileMapping によって返されたハンドルを CloseHandle への呼び出しで解放を呼び出す必要があります。
Windows Server 2012では、この関数は次のテクノロジでサポートされています。
テクノロジ | サポートされています |
---|---|
サーバー メッセージ ブロック (SMB) 3.0 プロトコル | はい |
SMB 3.0 Transparent Failover (TFO) | はい |
スケールアウト ファイル共有 (SO) を使う SMB 3.0 | はい |
クラスターの共有ボリューム ファイル システム (CsvFS) | はい |
Resilient File System (ReFS) | はい |
例
例については、「 名前付き共有メモリの作成」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winbase.h (Windows.h、Memoryapi.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |
関連項目
メモリ管理関数