MapViewOfFileFromApp 関数 (memoryapi.h)
ファイル マッピングのビューを、呼び出し元の Windows ストア アプリのアドレス空間にマップします。
構文
PVOID MapViewOfFileFromApp(
[in] HANDLE hFileMappingObject,
[in] ULONG DesiredAccess,
[in] ULONG64 FileOffset,
[in] SIZE_T NumberOfBytesToMap
);
パラメーター
[in] hFileMappingObject
ファイル マッピング オブジェクトへのハンドル。 CreateFileMappingFromApp 関数は、このハンドルを返します。
[in] DesiredAccess
ページのページ保護を決定するファイル マッピング オブジェクトへのアクセスの種類。 このパラメーターには、次のいずれかの値、または必要に応じて複数の値のビットごとの OR の組み合わせを指定できます。
ビットごとの OR を使用すると、上記の値とこれらの値を組み合わせることができます。
価値 | 意味 |
---|---|
|
ファイルの書き込み時のコピー ビューがマップされます。 ファイル マッピング オブジェクトは、PAGE_READONLY、PAGE_EXECUTE_READ、PAGE_WRITECOPY、または PAGE_READWRITE 保護を使用して作成されている必要があります。
プロセスが書き込み時のコピー ページに書き込むと、システムは元のページを、プロセスに対してプライベートな新しいページにコピーします。 新しいページはページング ファイルによってサポートされます。 新しいページの保護は、書き込み時のコピーから読み取り/書き込みに変わります。 書き込み時のコピー アクセスを指定すると、呼び出し元のプロセスがビュー内のすべてのページに書き込み、すべてのページをプライベートにする可能性があるため、システムとプロセスのコミット料金はビュー全体に対して行われます。 新しいページの内容は元のファイルに書き戻されることはなく、ビューがマップ解除されると失われます。 |
|
Windows 10 バージョン 1703 以降では、このフラグは、をサポートする大きなページ |
|
マップされたファイル内のすべての場所を、制御フロー ガード (CFG) の無効なターゲットとして設定します。 このフラグは、PAGE_TARGETS_INVALIDに似ています。 このフラグは、アクセス実行権限 FILE_MAP_EXECUTEと組み合わせて使用します。 これらのページ内の場所への間接呼び出しは CFG チェックに失敗し、プロセスは終了します。 割り当てられる実行可能ページの既定の動作は、CFG の有効な呼び出しターゲットとしてマークされます。 |
SEC_IMAGE 属性を使用して作成されたファイル マッピング オブジェクトの場合、dwDesiredAccess パラメーターは無効であり、FILE_MAP_READなどの任意の有効な値に設定する必要があります。
ファイル マッピング オブジェクトへのアクセスの詳細については、「ファイル マッピング のセキュリティとアクセス権の」を参照してください。
[in] FileOffset
ビューを開始するファイル オフセット。 オフセットは、ファイル マッピング内のオフセットを指定する必要があります。 また、システムのメモリ割り当て粒度と一致する必要があります。 つまり、オフセットは割り当て粒度の倍数である必要があります。 システムのメモリ割り当ての粒度を取得するには、GetSystemInfo 関数を使用します。この関数は、SYSTEM_INFO 構造体のメンバーを格納します。
[in] NumberOfBytesToMap
ビューにマップするファイル マッピングのバイト数。 すべてのバイトは、CreateFileMappingFromAppで指定
戻り値
関数が成功した場合、戻り値はマップされたビューの開始アドレスです。
関数が失敗した場合、戻り値は NULL
備考
1 つの重要な例外では、同じファイルによってサポートされるファイル マッピング オブジェクトから派生したファイル ビューは、特定の時点で一貫性または同一になります。 一貫性は、プロセス内のビューと、異なるプロセスによってマップされるビューに対して保証されます。
例外はリモート ファイルに関連しています。 MapViewOfFileFromApp
実行可能な保護を正常に要求できるのは、アプリに codeGeneration 機能がある場合のみです。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8 [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー | Windows Server 2012 [デスクトップ アプリ |UWP アプリ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | memoryapi.h (Windows.h を含む) |
ライブラリ | onecore.lib |
DLL | Kernel32.dll |
関連項目
CreateFileMapping の
ファイル ビュー の作成
DuplicateHandle の
GetSystemInfo を
MapViewOfFileEx の
unmapViewOfFile の