CreateFileMappingの使い方
CreateFileMapping 関数は、ファイル マッピング オブジェクトを作成するために使用されます。これにより、ファイルまたは他の種類のオブジェクトをプロセスの仮想アドレス空間にマップすることができます。関数のプロトタイプは以下の通りです:
ファイル マッピングのハンドルを作成します。
パラメータの説明:
- hFile:ファイルハンドルは、マッピングするファイルを指定します。このパラメータがINVALID_HANDLE_VALUEの場合、匿名オブジェクトがマッピングされていることを示します。
- lpAttributes:SECURITY_ATTRIBUTES構造体へのポインタで、オブジェクトのセキュリティを指定するために使用されます。このパラメータがNULLの場合、オブジェクトは非継承であることを意味します。
- flProtect:ファイルマッピングオブジェクトのアクセス権限と保護レベルを指定します。一般的な値には次のものがあります:PAGE_READONLY:読み取り専用権限
PAGE_READWRITE:読み取り/書き込み権限
PAGE_WRITECOPY:書き込みコピー権限 - 指定されたファイルマッピングオブジェクトの最大サイズを示します。 ファイルのサイズを取得するには、GetFileSize関数を使用するか、0に設定してファイル全体をマップすることもできます。
- lpNameはファイルマッピングオブジェクトの名前です。このパラメータがNULLの場合、匿名オブジェクトが作成されます。
ファイルマッピングオブジェクトのハンドルが返されますが、作成に失敗した場合はNULLが返されます。
ファイルマッピングオブジェクトを作成した後、MapViewOfFile関数を使用して、そのマッピングオブジェクトをプロセスの仮想アドレス空間にマッピングし、読み取りや書き込み操作を行うことができます。 UnmapViewOfFile関数を使用してマッピングを解除し、最後にCloseHandle関数を使用してファイルマッピングオブジェクトのハンドルを閉じます。