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.
Domyślnie linker przypisuje nazwy takich jak ".text" i ".data" do sekcji kodu i danych pliku obrazu sterownika. Po załadowaniu sterownika menedżer I/O zmienia te sekcje na niestronicowane. Sekcja niestronicowana jest zawsze obecna w pamięci.
Deweloper sterowników ma możliwość oznaczenia określonych części sterownika jako podatnych na stronicowanie, co pozwala systemowi Windows przenieść te części do pliku stronicowania, gdy nie są używane. Aby umożliwić stronicowanie kodu lub sekcji danych, deweloper sterownika przypisuje sekcji nazwę rozpoczynającą się od "PAGE". Menedżer we/wy sprawdza nazwy sekcji podczas ładowania sterownika. Jeśli nazwa sekcji zaczyna się od "PAGE", menedżer we/wy sprawia, że sekcja jest stronicowalna.
Kod działający na poziomie IRQL >= DISPATCH_LEVEL musi być obecny w pamięci. Oznacza to, że ten kod musi znajdować się w segmencie niestronicowalnym lub w segmencie stronicowalnym, który jest zablokowany w pamięci. Jeśli kod, który jest uruchomiony w >IRQL = DISPATCH_LEVEL powoduje błąd strony, występuje sprawdzanie błędów. Sterowniki mogą używać makra PAGED_CODE, aby sprawdzić, czy funkcje stronicowalne są wywoływane tylko w odpowiednich listach IRQLs.
Jeśli kod lub sekcja danych można stronicować, sterownik może zablokować sekcję w pamięci, wywołując procedurę MmLockPagableCodeSection lub MmLockPagableDataSection. Sekcja pozostaje zablokowana, dopóki sterownik nie wywoła rutyny MmUnlockPagableImageSection, aby ją odblokować. Gdy sekcja stronicowa jest zablokowana, zachowuje się tak samo jak sekcja niestronicowana.
Aby uzyskać informacje na temat przypisywania nazw do sekcji kodu i danych, zobacz MmLockPagableCodeSection i MmLockPagableDataSection.
Ta sekcja zawiera następujące tematy: