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.
Dodanie obsługi adresowania 64-bitowego do sterownika może znacznie poprawić ogólną wydajność systemu. Jest to szczególnie ważne w przypadku sterowników urządzeń, które wykonują bezpośredni dostęp do pamięci (DMA). W 64-bitowym systemie Microsoft Windows sterowniki urządzeń, które wykonują funkcję DMA, ale nie obsługują adresowania 64-bitowego, są buforowane dwukrotnie, co skutkuje niższą względną wydajnością.
Chociaż buforowanie podwójne zwykle ma stosunkowo niewielki wpływ (pojedyncze punkty procentowe) na systemach o 8 GB pamięci, wystarczy, aby wpłynąć na zadania intensywnych operacji we/wy, takie jak aktywność bazy danych. Wraz ze wzrostem ilości pamięci fizycznej zwiększa się również negatywny wpływ na wydajność.
Aby obsługiwać 64-bitową wersję DMA, sterowniki powinny przestrzegać następujących wytycznych:
Użyj struktur PHYSICAL_ADDRESS do obliczeń adresów fizycznych.
Traktuj cały adres 64-bitowy jako prawidłowy adres fizyczny. Na przykład sterowniki nie powinny wywoływać MmGetPhysicalAddress na zablokowanym buforze, odrzucać wysokie 32 bity i przekazywać obcięty adres do 32-bitowego adaptera komponentu. Powoduje to uszkodzenie pamięci, utratę operacji we/wy i awarię systemu.
Użyj routyn typu scatter/gather o wysokiej wydajności (GetScatterGatherList i PutScatterGatherList), które zostały dodane w systemie Windows 2000.
Sprawdź wartość zmiennej systemowej Mm64BitPhysicalAddress . Jeśli ma wartość TRUE, system obsługuje 64-bitowe adresowanie fizyczne.
Ustaw element członkowski Dma64BitAddresses struktury DEVICE_DESCRIPTION na TRUE, aby wskazać, że sterownik obsługuje 64-bitowe adresy DMA.
Procedury DMA w 32-bitowym systemie Windows są gotowe do użycia w wersji 64-bitowej. Jeśli sterownik urządzenia prawidłowo używa tych procedur, kod DMA powinien działać bez modyfikacji w 64-bitowym systemie Windows.