Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby zamapować dane z pliku na pamięć wirtualną procesu, należy utworzyć widok pliku. Funkcje MapViewOfFile oraz MapViewOfFileEx używają dojścia obiektu mapowania plików zwróconego przez CreateFileMapping do utworzenia widoku pliku lub jego części w wirtualnej przestrzeni adresowej procesu. Te funkcje kończą się niepowodzeniem, jeśli flagi dostępu powodują konflikt z flagami określonymi podczas utworzenia za pomocą CreateFileMapping obiektu mapowania plików.
Funkcja MapViewOfFile zwraca wskaźnik do widoku pliku. Wyłuszając wskaźnik w zakresie adresów określonych w MapViewOfFile, aplikacja może odczytywać dane z pliku i zapisywać dane w pliku. Zapisywanie w widoku pliku powoduje zmiany w obiekcie mapowania plików. Rzeczywiste zapisywanie pliku na dysku jest obsługiwane przez system. Dane nie są rzeczywiście przesyłane w momencie zapisywania obiektu mapowania plików. Zamiast tego większość danych wejściowych i wyjściowych pliku (We/Wy) jest buforowana w celu zwiększenia ogólnej wydajności systemu. Aplikacje mogą zastąpić to zachowanie, wywołując funkcję FlushViewOfFile, aby wymusić natychmiastowe wykonywanie transakcji na dysku przez system.
Funkcja MapViewOfFileEx działa dokładnie tak jak funkcjaMapViewOfFile, z tą różnicą, że umożliwia procesowi określenie podstawowego adresu widoku pliku w wirtualnej przestrzeni adresowej procesu w parametrze lpvBase. Jeśli nie ma wystarczającej ilości miejsca na podany adres, wywołanie zakończy się niepowodzeniem. W związku z tym, jeśli musisz zamapować plik na ten sam adres w wielu procesach, procesy powinny negocjować odpowiedni adres: parametr lpvBase musi być integralną wielokrotnością stopnia szczegółowości alokacji pamięci systemowej lub wywołanie kończy się niepowodzeniem. Aby uzyskać stopień szczegółowości alokacji pamięci systemu, użyj funkcji GetSystemInfo, która wypełnia elementy członkowskie struktury SYSTEM_INFO.
Aplikacja może utworzyć wiele widoków plików z tego samego obiektu mapowania plików. Widok pliku może być inny niż obiekt mapowania plików, z którego pochodzi, ale musi być mniejszy niż obiekt mapowania plików. Przesunięcie określone przez dwOffsetHigh i dwOffsetLow parametrów MapViewOfFile musi być wielokrotnością stopnia szczegółowości alokacji systemu.
Tematy pokrewne