メモ帳が完全に応答していないように見える大きなファイルをロードするのに非常に長い時間がかかる可能性があることに気付きましたが、ファイルハンドルは最初の非常に短い時間だけアクティブになっているようです. 読み込みが開始されると、別のプロセスがファイルを排他共有モードで開くことができます。つまり、dwShareModeに値 0 を使用します。
メモ帳は、閉じたハンドルまたは使用する魔法でどのようにロードを続けますか?
メモ帳が完全に応答していないように見える大きなファイルをロードするのに非常に長い時間がかかる可能性があることに気付きましたが、ファイルハンドルは最初の非常に短い時間だけアクティブになっているようです. 読み込みが開始されると、別のプロセスがファイルを排他共有モードで開くことができます。つまり、dwShareModeに値 0 を使用します。
メモ帳は、閉じたハンドルまたは使用する魔法でどのようにロードを続けますか?
メモ帳の機能を理解したことを忘れないでください。他の誰かがそれを必要とする場合の解決策は次のとおりです。
hFile = CreateFile("file", 0x80000000, 3, NULL, 3, 0x80, NULL);
hMap = CreateFileMapping(hFile, NULL, 2, sizeHigh, sizeLow, NULL);
ptr = MapViewOfFile(hMap, 4, 0, 0, size);
CloseHandle(hMap);
CloseHandle(hFile);
/* At this point the handles are closed so programs that try
to get share exclusive on the file succeed but I still have
a pointer for reading the memory myself */
UnmapViewOfFile(ptr);