次の方法で共有


MapViewOfFile2 関数 (memoryapi.h)

ファイルまたはページファイルに基づくセクションのビューを、指定されたプロセスのアドレス空間にマップします。

構文

PVOID MapViewOfFile2(
  [in]           HANDLE  FileMappingHandle,
  [in]           HANDLE  ProcessHandle,
  [in]           ULONG64 Offset,
  [in, optional] PVOID   BaseAddress,
  [in]           SIZE_T  ViewSize,
  [in]           ULONG   AllocationType,
  [in]           ULONG   PageProtection
);

パラメーター

[in] FileMappingHandle

指定したプロセスのアドレス空間にマップされるセクションへの HANDLE

[in] ProcessHandle

セクションがマップされるプロセスへの HANDLE 。 ハンドルには 、PROCESS_VM_OPERATION アクセス マスクが必要です。

[in] Offset

セクションの先頭からのオフセット。 これは 64k アラインされている必要があります。

[in, optional] BaseAddress

ビューの目的のベース アドレス。 アドレスは、最も近い 64k 境界に切り捨てられます。 このパラメーターが NULL の場合、システムはベース アドレスを選択します。

[in] ViewSize

マップするバイト数。 0 の値は、セクション全体をマップすることを指定します。

[in] AllocationType

割り当ての種類。 このパラメーターには、ゼロ (0) または次のいずれかの定数値を指定できます。

  • MEM_RESERVE - 予約ビューをマップします。
  • MEM_LARGE_PAGES - 大きなページ ビューをマップします。 このフラグは、 大きなページのサポートを使用してビューをマップする必要があることを指定します。 ビューのサイズは 、GetLargePageMinimum 関数によって報告される大きなページのサイズの倍数である必要があり、ファイル マッピング オブジェクトは SEC_LARGE_PAGES オプションを使用して作成されている必要があります。 BaseAddress パラメーターに null 以外の値を指定する場合、値は GetLargePageMinimum の倍数である必要があります。

[in] PageProtection

目的のページ保護。

SEC_IMAGE属性を使用して作成されたファイル マッピング オブジェクトの場合、PageProtection パラメーターは無効であり、PAGE_READONLYなどの有効な値に設定する必要があります。

戻り値

成功した場合は、マップされたビューのベース アドレスを返します。 それ以外の場合は NULL を 返し、拡張エラーの状態は GetLastError を使用して使用できます。

解説

この関数はヘッダーのインライン関数として実装されており、エクスポート ライブラリや DLL には見つかりません。 これは、最後のパラメーターが にNUMA_NO_PREFERRED_NODE設定された MapViewOfFileNuma2 を呼び出すのと同じです。

要件

   
サポートされている最小のクライアント Windows 10、バージョン 1703 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2016 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー memoryapi.h (Windows.h、Memoryapi.h を含む)
Library onecore.lib
[DLL] Kernel32.dll

関連項目

MapViewOfFile

MapViewOfFileNuma2