Windows NT 2000 Native API Leksykon.pdf

(534 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TREŒCI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
Windows 2000/NT
Native API.
Leksykon
Autor: Gary Nebbett
T³umaczenie: Pawe³ Koronkiewicz
ISBN: 83-7197-508-2
Tytu³ orygina³u:
Windows NT/2000 Native API
Reference
Format: B5, stron: 632
TWÓJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOŒCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Native API, czyli macierzysty interfejs programowania aplikacji systemu Windows NT,
to zestaw us³ug systemowych dostarczanych przez modu³ wykonawczy NT programom
trybu u¿ytkownika i trybu j¹dra. Leksykon Windows NT/2000 Native API jest prób¹
ca³oœciowego omówienia tego nieudokumentowanego zbioru procedur. Stanowi
niezast¹pione narzêdzie projektanta oprogramowania, zawieraj¹c:
opis ponad 200 procedur macierzystego interfejsu API;
szczegó³owe omówienie procedur niedostêpnych bezpoœrednio z poziomu
Win32 API lub oferuj¹cych dodatkowe, istotne funkcje;
przyk³adowe procedury biblioteczne i programy narzêdziowe, ilustruj¹ce
dzia³anie omawianych procedur;
omówienie architektury j¹dra oraz debugowania aplikacji trybu u¿ytkownika.
Jako programiœcie pracuj¹cym na poziomie systemu, a tak¿e aplikacji, Leksykon
Windows NT/2000 Native API pomo¿e Ci w:
tworzeniu programów narzêdziowych i mechanizmów systemowych, takich jak
debugery, narzêdzia analityczne i biblioteki wykonawcze;
okreœleniu czy funkcje, których brakuje w systemie, choæ nale¿a³oby oczekiwaæ
ich obecnoœci, faktycznie nie istniej¹, czy jedynie nie zosta³y udokumentowane;
zapoznaniu siê ze zmianami w API wprowadzonymi w Windows 2000;
pog³êbianiu wiedzy o tajnikach funkcjonowania Windows NT.
"
"
"
"
"
"
"
"
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
1 #WVQT\G
9UVúR
Korzystanie z macierzystego interfejsu API ........................................................................... 22
Zale ność między Win32 API a API macierzystym ............................................................... 23
Przykład W.1. Typowe osłonięcie procedury API macierzystego przez interfejs Win32 ...... 23
Przykład W.2. Najprostszy przykład osłonięcia przez Win32
procedury API macierzystego ............................................................................................... 25
Wywoływanie macierzystych usług systemu z trybu jądra..................................................... 25
Przykład W.3. Typowa preambuła macierzystej usługi systemowej ...................................... 26
Wartości zwracane przez usługi systemowe ........................................................................... 27
Względna częstość wywołań usług systemowych................................................................... 27
Tabela W.1. Częstość wywołań macierzystych usług systemowych ...................................... 27
O niniejszej ksią ce ................................................................................................................. 31
4Q\F\KCo +PHQTOCELG U[UVGOQYG
ZwQuerySystemInformation ................................................................................................... 33
ZwSetSystemInformation ........................................................................................................ 35
SYSTEM_INFORMATION_CLASS ..................................................................................... 36
SystemBasicInformation.......................................................................................................... 37
SystemProcessorInformation................................................................................................... 38
SystemPerformanceInformation .............................................................................................. 39
SystemTimeOfDayInformation ............................................................................................... 47
SystemProcessesAndThreadsInformation ............................................................................... 48
SystemCallCounts.................................................................................................................... 53
SystemConfigurationInformation ............................................................................................ 53
SystemProcessorTimes ............................................................................................................ 54
SystemGlobalFlag.................................................................................................................... 55
9KPFQYU 06 0CVKXG #2+ .GMU[MQP
SystemModuleInformation ...................................................................................................... 56
SystemLockInformation .......................................................................................................... 57
SystemHandleInformation....................................................................................................... 59
SystemObjectInformation........................................................................................................ 60
SystemPagefileInformation ..................................................................................................... 63
SystemInstructionEmulationCounts ........................................................................................ 64
SystemCacheInformation ........................................................................................................ 64
SystemPoolTagInformation..................................................................................................... 66
SystemProcessorStatistics........................................................................................................ 67
SystemDpcInformation............................................................................................................ 68
SystemLoadImage ................................................................................................................... 68
SystemUnloadImage................................................................................................................ 69
SystemTimeAdjustment .......................................................................................................... 70
SystemCrashDumpInformation ............................................................................................... 71
SystemExceptionInformation .................................................................................................. 71
SystemCrashDumpStateInformation ....................................................................................... 72
SystemKernelDebuggerInformation........................................................................................ 73
SystemContextSwitchInformation........................................................................................... 73
SystemRegistryQuotaInformation ........................................................................................... 74
SystemLoadAndCallImage...................................................................................................... 74
SystemPrioritySeparation ........................................................................................................ 75
SystemTimeZoneInformation.................................................................................................. 76
SystemLookasideInformation.................................................................................................. 77
SystemSetTimeSlipEvent ........................................................................................................ 78
SystemCreateSession ............................................................................................................... 79
SystemDeleteSession ............................................................................................................... 79
SystemRangeStartInformation................................................................................................. 80
SystemVerifierInformation...................................................................................................... 80
SystemAddVerifier .................................................................................................................. 80
SystemSessionProcessesInformation....................................................................................... 81
SystemPoolBlocksInformation ................................................................................................ 81
SystemMemoryUsageInformation........................................................................................... 83
Przykład 1.1. Częściowa implementacja biblioteki ToolHelp ................................................ 84
Przykład 1.2. Lista otwartych uchwytów procesu................................................................... 88
ZwQuerySystemEnvironmentValue........................................................................................ 90
ZwSetSystemEnvironmentValue............................................................................................. 92
ZwShutdownSystem ................................................................................................................ 93
ZwSystemDebugControl ......................................................................................................... 94
Przykład 1.3. Ustawianie wewnętrznego punktu przerwania.................................................. 98
Przykład 1.4. Pobieranie danych śledzenia ........................................................................... 100
5RKU VTGEK
4Q\F\KCo 1DKGMV[ MCVCNQIK K oæE\C U[ODQNKE\PG
OBJECT_ATTRIBUTES ...................................................................................................... 103
ZwQueryObject ..................................................................................................................... 105
ZwSetInformationObject ....................................................................................................... 107
OBJECT_INFORMATION_CLASS .................................................................................... 108
ObjectBasicInformation......................................................................................................... 108
ObjectNameInformation ........................................................................................................ 110
ObjectTypeInformation ......................................................................................................... 110
ObjectAllTypesInformation................................................................................................... 112
ObjectHandleInformation ...................................................................................................... 113
ZwDuplicateObject................................................................................................................ 113
ZwMakeTemporaryObject .................................................................................................... 115
ZwClose ................................................................................................................................. 115
Przykład 2.1. Lista otwartych uchwytów procesu................................................................. 116
ZwQuerySecurityObject ........................................................................................................ 118
ZwSetSecurityObject ............................................................................................................. 119
ZwCreateDirectoryObject...................................................................................................... 120
ZwOpenDirectoryObject ....................................................................................................... 121
ZwQueryDirectoryObject ...................................................................................................... 123
ZwCreateSymbolicLinkObject .............................................................................................. 124
ZwOpenSymbolicLinkObject................................................................................................ 125
ZwQuerySymbolicLinkObject .............................................................................................. 126
4Q\F\KCo 2COKúè YKTVWCNPC
ZwAllocateVirtualMemory ................................................................................................... 129
ZwFreeVirtualMemory.......................................................................................................... 131
ZwQueryVirtualMemory ....................................................................................................... 132
MEMORY_INFORMATION_CLASS................................................................................. 134
MemoryBasicInformation...................................................................................................... 134
MemoryWorkingSetList ........................................................................................................ 135
MemorySectionName ............................................................................................................ 136
ZwLockVirtualMemory......................................................................................................... 137
ZwUnlockVirtualMemory ..................................................................................................... 138
ZwReadVirtualMemory......................................................................................................... 139
ZwWriteVirtualMemory........................................................................................................ 140
ZwProtectVirtualMemory...................................................................................................... 142
ZwFlushVirtualMemory ........................................................................................................ 143
ZwAllocateUserPhysicalPages .............................................................................................. 144
ZwFreeUserPhysicalPages .................................................................................................... 145
ZwMapUserPhysicalPages .................................................................................................... 146
ZwMapUserPhysicalPagesScatter ......................................................................................... 148
9KPFQYU 06 0CVKXG #2+ .GMU[MQP
ZwGetWriteWatch................................................................................................................. 149
ZwResetWriteWatch.............................................................................................................. 150
4Q\F\KCo 5GMELG
ZwCreateSection.................................................................................................................... 153
ZwOpenSection ..................................................................................................................... 155
ZwQuerySection .................................................................................................................... 156
SECTION_INFORMATION_CLASS .................................................................................. 158
SectionBasicInformation ....................................................................................................... 158
SectionImageInformation ...................................................................................................... 159
ZwExtendSection................................................................................................................... 160
ZwMapViewOfSection.......................................................................................................... 161
ZwUnmapViewOfSection ..................................................................................................... 164
ZwAreMappedFilesTheSame ................................................................................................ 164
4Q\F\KCo 9æVMK
ZwCreateThread .................................................................................................................... 167
ZwOpenThread ...................................................................................................................... 170
ZwTerminateThread .............................................................................................................. 171
ZwQueryInformationThread.................................................................................................. 172
ZwSetInformationThread ...................................................................................................... 174
THREADINFOCLASS ......................................................................................................... 175
ThreadBasicInformation ........................................................................................................ 175
ThreadTimes .......................................................................................................................... 176
ThreadPriority........................................................................................................................ 177
ThreadBasePriority ................................................................................................................ 177
ThreadAffinityMask .............................................................................................................. 177
ThreadImpersonationToken................................................................................................... 177
ThreadEnableAlignmentFaultFixup ...................................................................................... 177
ThreadEventPair .................................................................................................................... 178
ThreadQuerySetWin32StartAddress ..................................................................................... 178
ThreadZeroTlsCell................................................................................................................. 179
ThreadPerformanceCount...................................................................................................... 179
ThreadAmILastThread .......................................................................................................... 179
ThreadIdealProcessor ............................................................................................................ 179
ThreadPriorityBoost .............................................................................................................. 179
ThreadSetTlsArrayAddress ................................................................................................... 179
ThreadIsIoPending................................................................................................................. 180
ThreadHideFromDebugger.................................................................................................... 180
ZwSuspendThread ................................................................................................................. 180
ZwResumeThread.................................................................................................................. 181
Zgłoś jeśli naruszono regulamin