<Return[MN]><Top>
MapViewOfFileEx |
Declare Function Api_MapViewOfFile& Lib "kernel32" Alias "MapViewOfFile" (ByVal hFileMappingObject&, ByVal dwDesiredAccess&, ByVal dwFileOffsetHigh&, ByVal dwFileOffsetLow&, ByVal dwNumberOfBytesToMap&) |
||||||||
Declare Function MapViewOfFile Lib "kernel32" Alias "MapViewOfFile" (ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByVal dwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As Long) As Long |
|||||||||
ファイルのビューを呼び出し側プロセスのアドレス空間にマップする。この拡張関数によって、マップするビューの推奨メモリアドレスを呼び出し側プロセスで指定できるようになる。 |
|||||||||
パラメータ
このハンドルは、CreateFileMapping 関数と OpenFileMapping 関数から返る。 次のいずれかの値を指定する。
dwFileOffsetHigh 下位オフセットと上位オフセットの組み合わせは、システムのメモリ割り当ての単位と一致するファイル内のオフセットを指定するものでなくて はならない。この指定を誤ると、関数は失敗する。つまり、オフセットは割り当ての単位の倍数でなければならない。システムのメモリ割り
当ての単位を取得するには、SYSTEM_INFO 構造体のメンバを記述する GetSystemInfo 関数を使う。 この値は、システムのメモリ割り当ての単位の倍数でなければならない。それ以外の値を指定すると、関数は失敗する。 システムのメモリ割り当ての単位を取得するには、SYSTEM_INFO 構造体のメンバを記述する GetSystemInfo 関数を使う。
指定されたアドレスに十分なアドレス空間がないと、関数は失敗する。
この場合、MapViewOfFileEX 関数は MapViewOfFile 関数と同じ機能を果たす。
解説
る)。指定したアドレスに十分なアドレス空間がないと、関数は失敗する。 アドレス空間のリージョンがすべてのプロセスで使用可能である必要がある。マッピングに使うリージョンでは、VirtualAlloc 関数によるメモリ
の予約を含め、ほかのメモリ割り当てを実行しないようにする。
リージョンが使用できる場合にだけ関数が成功する。 いない場合に関数が成功する。システムでは、ほかの 32 ビットプロセスでマップされるファイルに対して同じメモリリージョンを使用できるかど
うかは保証されない。 ト」という。コヒーレントは、ファイルビューが同じファイルマッピングオブジェクトから派生した場合に発生する。 関数を使うと、プロセスからフ ァイルマッピングオブジェクトのハンドルを別のプロセスにコピーすることができる。また、OpenFileMapping 関数を使うと、別のプロセスから
名前を指定してファイルマッピングオブジェクトを開くことができる。 |