Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Sterowniki trybu jądra używają natywnych procedur usług systemowych, wywołując punkty wejścia Nt i Zw w bibliotece linków dynamicznych (DLL) Ntoskrnl.exe. Ta biblioteka DLL zawiera rzeczywiste implementacje tych procedur. Aby uzyskać dostęp do tych punktów wejścia, sterownik statycznie łączy się z biblioteką Ntoskrnl.lib, która jest dostępna w zestawie sterowników systemu Windows (WDK). Procedury implementowane w Ntoskrnl.lib to zastępniki, które dynamicznie łączą się z punktami wejścia w Ntoskrnl.exe w czasie wykonywania.
W dokumentacji zestawu WDK opisano niektóre, ale nie wszystkie punkty wejścia Zw w Ntoskrnl.exe. Opisy procedur Zw , które mogą być wywoływane przez sterowniki, zobacz Procedury ZwXxx.
Większość udokumentowanych procedur Zw jest definiowana w pliku nagłówkowym Wdm.h w zestawie WDK, ale kilka z nich jest zdefiniowanych w innych plikach nagłówków, takich jak Ntddk.h i Ntifs.h.
Zazwyczaj aplikacje w trybie użytkownika nie nazywają procedur Nt i Zw . Zamiast tego aplikacja może wywołać procedurę Win32, taką jak CreateFile, która następnie wywołuje natywne procedury usług systemowych, takie jak NtCreateFile lub ZwCreateFile, w celu wykonania żądanej operacji. Jednak aplikacja w trybie użytkownika może bezpośrednio wywołać procedurę Nt lub Zw , aby wykonać operację, która nie jest obsługiwana przez procedury Win32.
Aplikacje w trybie użytkownika używają natywnych procedur usług systemowych przez wywołanie punktów wejścia w bibliotece linków dynamicznych Ntdll.dll. Te punkty wejścia konwertują wywołania procedur Nt i Zw na wywołania systemowe, które są przekazywane do trybu jądra. Aby uzyskać dostęp do tych punktów wejścia, aplikacja trybu użytkownika statycznie łączy się z biblioteką Ntdll.lib, która jest dostępna w zestawie WDK. Rutyny implementowane w Ntdll.lib to zastępniki, które dynamicznie łączą się z punktami wejścia w Ntdll.dll w czasie wykonywania.
W dokumentacji zestawu Windows SDK opisano niektóre, ale nie wszystkie punkty wejścia Nt w ntdll.lib. Większość udokumentowanych procedur Nt jest definiowana w pliku nagłówka Winternl.h w zestawie Windows SDK. Ta dokumentacja zawiera niewiele wzmianek o punktach wejścia Zw, a żadne pliki nagłówkowe w pakiecie Windows SDK nie zawierają definicji procedur Zw.
W przypadku kilku drobnych wyjątków każdy punkt wejścia w Ntdll.dll dla procedury Nt ma pasujący punkt wejścia dla procedury Zw . Dokumentacja zestawu WDK i zestawu Windows SDK zaleca, aby deweloperzy aplikacji unikali wywoływania nieudokumentowanych punktów wejścia Nt i ostrzegali, że punkty wejścia Zw mogą zniknąć z Ntdll.dll w przyszłej wersji systemu Windows. Deweloperzy aplikacji, którzy wywołują rutyny Zw z trybu użytkownika, powinni być przygotowani na taką sytuację.
Opisy procedur Nt, które mogą być wywoływane przez aplikacje, zobaczysz w Winternl, nagłówek winternl.h i Różne Low-Level Obsługa klienta. Niektóre strony referencyjne procedur Nt w dokumentacji zestawu Windows SDK zawierają etykietę procedur jako "przestarzałe" i doradzają czytelnikom używanie równoważnych procedur Win32 zamiast przestarzałych procedur Nt .
Aplikacja trybu użytkownika nie może wywołać punktów wejścia w Ntoskrnl.exe, a sterownik trybu jądra nie może wywołać punktów wejścia w Ntdll.dll.