呼び出しプロセスのアドレス空間にファイルマッピングオブジェクトのビューをマッピングします。
ベースアドレスを指定するには、MapViewOfFileEx関数を使います。
PVOID MapViewOfFile( HANDLE hMappingObject, // mapping object handle DWORD dwDesiredAccess, // access type DWORD dwFileOffsetHigh, // high-order of offset DWORD dwFileOffsetLow, // low-order of offset SIZE_T dwNumberOfByteToMap // number of bytes );
KERNEL32.DLL
ファイルマッピングオブジェクトのハンドルを指定します。このハンドルはCreateFileMapping関数またはOpenFileMapping 関数によって返されます。
データへのアクセスのタイプを指定します。以下の値のいずれかになります。
hMappingObjectパラメータで指定されるファイルマッピングオブジェクトがPAGE_WRITECOPY保護属性を指定して作成され、かつ、このフラグを指定した場合は、このビューに書き込みをすると、ページが自動的にスワップされて、オリジナルのデータファイルは変更されません。
Windows 95/98/Me: ファイルマッピングオブジェクトがPAGE_WRITECOPY保護属性を持っていない場合には、この関数はエラーを返します。
1つのマッピングオブジェクトを複数のプロセス間で共有している場合には、あるプロセスのビューに書き込みを行なうと、他のプロセスのビューにも反映されます。オリジナルファイルのデータは変化しません。
Windows NT/2000/XP: ファイルマッピングオブジェクトの保護属性の制限はありません。コピーオンライトアクセスの指定は、どの保護属性を持つビューに対しても有効です。
1つのマッピングオブジェクトを複数のプロセス間で共有している場合に、あるプロセスのビューに書き込みを行なっても、他のプロセスのビューは変更されません。オリジナルファイルのデータは変化しません。
hMappingObjectパラメータで指定されるファイルマッピングオブジェクトはPAGE_READWRITE保護属性を指定して作成されたものでなければなりません。
hMappingObjectパラメータで指定されるファイルマッピングオブジェクトはPAGE_READWRITEまたはPAGE_READONLY保護属性を指定して作成されたものでなければなりません。
マッピング開始オフセットの上位32ビットを指定します。
マッピング開始オフセットの下位32ビットを指定します。オフセットは割り当て単位の倍数でなければなりません。割り当て単位を取得するにはGetSystemInfo関数によって取得されるSYSTEM_INFO構造体のdwAllocationGranularityメンバを参照します。
マップするファイルのサイズをバイト単位で指定します。0を指定すると、マッピングオブジェクト全体が指定されます。
成功すると、マッピングされたビューの開始アドレスが返ります。
失敗すると0 (NULL) が返ります。拡張エラー情報を取得するには、GetLastError関数を使います。
ビューのサイズを取得するには、VirtualQuery関数を使います。
単一のファイルマッピングオブジェクトからマッピングされる複数のビューでは、一貫性(コヒーレンシ)が保証されます。
ReadFile関数やWriteFileなどでアクセスされるファイルに対しては、そのマッピングされたビューの一貫性は保証されません。
Windows 95 以降 / Windows NT 3.1 以降