00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include <ntoskrnl.h>
00012 #define NDEBUG
00013 #include <debug.h>
00014 #include "../mm/ARM3/miarm.h"
00015 #undef MmSystemRangeStart
00016
00017 VOID NTAPI RtlpBreakWithStatusInstruction(VOID);
00018
00019
00020
00021
00022 #if defined(_X86_) || defined(_AMD64_)
00023 #define KPCR KIPCR
00024 #endif
00025
00026 #if defined(_X86_)
00027
00028 #define KPCR_SELF_PCR_OFFSET FIELD_OFFSET(KPCR, Self)
00029 #define KPCR_CURRENT_PRCB_OFFSET FIELD_OFFSET(KPCR, Prcb)
00030 #define KPCR_CONTAINED_PRCB_OFFSET FIELD_OFFSET(KPCR, PrcbData)
00031 #define KPCR_INITIAL_STACK_OFFSET 0
00032 #define KPCR_STACK_LIMIT_OFFSET 0
00033 #define KPRCB_PCR_PAGE_OFFSET 0
00034 #define CBSTACK_FRAME_POINTER Ebp
00035
00036 #elif defined(_AMD64_)
00037
00038 #define KPCR_SELF_PCR_OFFSET FIELD_OFFSET(KPCR, Self)
00039 #define KPCR_CURRENT_PRCB_OFFSET FIELD_OFFSET(KPCR, CurrentPrcb)
00040 #define KPCR_CONTAINED_PRCB_OFFSET FIELD_OFFSET(KPCR, Prcb)
00041 #define KPCR_INITIAL_STACK_OFFSET 0
00042 #define KPCR_STACK_LIMIT_OFFSET 0
00043 #define KPRCB_PCR_PAGE_OFFSET 0
00044 #define CBSTACK_FRAME_POINTER Rbp
00045
00046 #elif defined(_ARM_)
00047
00048 #define KPCR_SELF_PCR_OFFSET 0
00049 #define KPCR_CURRENT_PRCB_OFFSET FIELD_OFFSET(KPCR, Prcb)
00050 #define KPCR_CONTAINED_PRCB_OFFSET 0
00051 #define KPCR_INITIAL_STACK_OFFSET FIELD_OFFSET(KPCR, InitialStack)
00052 #define KPCR_STACK_LIMIT_OFFSET FIELD_OFFSET(KPCR, StackLimit)
00053 #define KPRCB_PCR_PAGE_OFFSET FIELD_OFFSET(KPRCB, PcrPage)
00054 #define CBSTACK_FRAME_POINTER DummyFramePointer
00055
00056 #else
00057 #error Unsupported Architecture
00058 #endif
00059
00060
00061
00062
00063
00064
00065 KD_CONTEXT KdpContext;
00066 BOOLEAN KdpPortLocked;
00067 KSPIN_LOCK KdpDebuggerLock;
00068 BOOLEAN KdpControlCPressed;
00069 BOOLEAN KdpContextSent;
00070
00071
00072
00073
00074 PKDEBUG_ROUTINE KiDebugRoutine = KdpStub;
00075 PKDEBUG_SWITCH_ROUTINE KiDebugSwitchRoutine;
00076
00077
00078
00079
00080 BOOLEAN KdBreakAfterSymbolLoad;
00081 BOOLEAN KdPitchDebugger;
00082 BOOLEAN _KdDebuggerNotPresent;
00083 BOOLEAN _KdDebuggerEnabled;
00084 BOOLEAN KdAutoEnableOnEvent;
00085 BOOLEAN KdBlockEnable;
00086 BOOLEAN KdIgnoreUmExceptions;
00087 BOOLEAN KdPreviouslyEnabled;
00088 BOOLEAN KdpDebuggerStructuresInitialized;
00089 BOOLEAN KdEnteredDebugger;
00090 ULONG KdDisableCount;
00091 LARGE_INTEGER KdPerformanceCounterRate;
00092
00093
00094
00095
00096 BREAKPOINT_ENTRY KdpBreakpointTable[KD_BREAKPOINT_MAX];
00097 KD_BREAKPOINT_TYPE KdpBreakpointInstruction = KD_BREAKPOINT_VALUE;
00098 BOOLEAN KdpOweBreakpoint;
00099 BOOLEAN BreakpointsSuspended;
00100 ULONG KdpNumInternalBreakpoints;
00101
00102
00103
00104
00105 ULONG_PTR KdpCurrentSymbolStart, KdpCurrentSymbolEnd;
00106
00107
00108
00109
00110 ULONG TraceDataBuffer[40];
00111 ULONG TraceDataBufferPosition = 1;
00112
00113
00114
00115
00116 KDPC KdpTimeSlipDpc;
00117 KTIMER KdpTimeSlipTimer;
00118 WORK_QUEUE_ITEM KdpTimeSlipWorkItem;
00119 LONG KdpTimeSlipPending = 1;
00120 PKEVENT KdpTimeSlipEvent;
00121 KSPIN_LOCK KdpTimeSlipEventLock;
00122 LARGE_INTEGER KdTimerStop, KdTimerStart, KdTimerDifference;
00123
00124
00125
00126
00127 CHAR KdpMessageBuffer[0x1000];
00128 CHAR KdpPathBuffer[0x1000];
00129
00130
00131
00132
00133 CHAR KdPrintDefaultCircularBuffer[KD_DEFAULT_LOG_BUFFER_SIZE];
00134 PCHAR KdPrintWritePointer = KdPrintDefaultCircularBuffer;
00135 ULONG KdPrintRolloverCount;
00136 PCHAR KdPrintCircularBuffer = KdPrintDefaultCircularBuffer;
00137 ULONG KdPrintBufferSize = sizeof(KdPrintDefaultCircularBuffer);
00138 ULONG KdPrintBufferChanges = 0;
00139
00140
00141
00142
00143 ULONG Kd_WIN2000_Mask = 1;
00144 ULONG Kd_SYSTEM_Mask;
00145 ULONG Kd_SMSS_Mask;
00146 ULONG Kd_SETUP_Mask;
00147 ULONG Kd_NTFS_Mask;
00148 ULONG Kd_FSTUB_Mask;
00149 ULONG Kd_CRASHDUMP_Mask;
00150 ULONG Kd_CDAUDIO_Mask;
00151 ULONG Kd_CDROM_Mask;
00152 ULONG Kd_CLASSPNP_Mask;
00153 ULONG Kd_DISK_Mask;
00154 ULONG Kd_REDBOOK_Mask;
00155 ULONG Kd_STORPROP_Mask;
00156 ULONG Kd_SCSIPORT_Mask;
00157 ULONG Kd_SCSIMINIPORT_Mask;
00158 ULONG Kd_CONFIG_Mask;
00159 ULONG Kd_I8042PRT_Mask;
00160 ULONG Kd_SERMOUSE_Mask;
00161 ULONG Kd_LSERMOUS_Mask;
00162 ULONG Kd_KBDHID_Mask;
00163 ULONG Kd_MOUHID_Mask;
00164 ULONG Kd_KBDCLASS_Mask;
00165 ULONG Kd_MOUCLASS_Mask;
00166 ULONG Kd_TWOTRACK_Mask;
00167 ULONG Kd_WMILIB_Mask;
00168 ULONG Kd_ACPI_Mask;
00169 ULONG Kd_AMLI_Mask;
00170 ULONG Kd_HALIA64_Mask;
00171 ULONG Kd_VIDEO_Mask;
00172 ULONG Kd_SVCHOST_Mask;
00173 ULONG Kd_VIDEOPRT_Mask;
00174 ULONG Kd_TCPIP_Mask;
00175 ULONG Kd_DMSYNTH_Mask;
00176 ULONG Kd_NTOSPNP_Mask;
00177 ULONG Kd_FASTFAT_Mask;
00178 ULONG Kd_SAMSS_Mask;
00179 ULONG Kd_PNPMGR_Mask;
00180 ULONG Kd_NETAPI_Mask;
00181 ULONG Kd_SCSERVER_Mask;
00182 ULONG Kd_SCCLIENT_Mask;
00183 ULONG Kd_SERIAL_Mask;
00184 ULONG Kd_SERENUM_Mask;
00185 ULONG Kd_UHCD_Mask;
00186 ULONG Kd_RPCPROXY_Mask;
00187 ULONG Kd_AUTOCHK_Mask;
00188 ULONG Kd_DCOMSS_Mask;
00189 ULONG Kd_UNIMODEM_Mask;
00190 ULONG Kd_SIS_Mask;
00191 ULONG Kd_FLTMGR_Mask;
00192 ULONG Kd_WMICORE_Mask;
00193 ULONG Kd_BURNENG_Mask;
00194 ULONG Kd_IMAPI_Mask;
00195 ULONG Kd_SXS_Mask;
00196 ULONG Kd_FUSION_Mask;
00197 ULONG Kd_IDLETASK_Mask;
00198 ULONG Kd_SOFTPCI_Mask;
00199 ULONG Kd_TAPE_Mask;
00200 ULONG Kd_MCHGR_Mask;
00201 ULONG Kd_IDEP_Mask;
00202 ULONG Kd_PCIIDE_Mask;
00203 ULONG Kd_FLOPPY_Mask;
00204 ULONG Kd_FDC_Mask;
00205 ULONG Kd_TERMSRV_Mask;
00206 ULONG Kd_W32TIME_Mask;
00207 ULONG Kd_PREFETCHER_Mask;
00208 ULONG Kd_RSFILTER_Mask;
00209 ULONG Kd_FCPORT_Mask;
00210 ULONG Kd_PCI_Mask;
00211 ULONG Kd_DMIO_Mask;
00212 ULONG Kd_DMCONFIG_Mask;
00213 ULONG Kd_DMADMIN_Mask;
00214 ULONG Kd_WSOCKTRANSPORT_Mask;
00215 ULONG Kd_VSS_Mask;
00216 ULONG Kd_PNPMEM_Mask;
00217 ULONG Kd_PROCESSOR_Mask;
00218 ULONG Kd_DMSERVER_Mask;
00219 ULONG Kd_SR_Mask;
00220 ULONG Kd_INFINIBAND_Mask;
00221 ULONG Kd_IHVDRIVER_Mask;
00222 ULONG Kd_IHVVIDEO_Mask;
00223 ULONG Kd_IHVAUDIO_Mask;
00224 ULONG Kd_IHVNETWORK_Mask;
00225 ULONG Kd_IHVSTREAMING_Mask;
00226 ULONG Kd_IHVBUS_Mask;
00227 ULONG Kd_HPS_Mask;
00228 ULONG Kd_RTLTHREADPOOL_Mask;
00229 ULONG Kd_LDR_Mask;
00230 ULONG Kd_TCPIP6_Mask;
00231 ULONG Kd_ISAPNP_Mask;
00232 ULONG Kd_SHPC_Mask;
00233 ULONG Kd_STORPORT_Mask;
00234 ULONG Kd_STORMINIPORT_Mask;
00235 ULONG Kd_PRINTSPOOLER_Mask;
00236 ULONG Kd_VSSDYNDISK_Mask;
00237 ULONG Kd_VERIFIER_Mask;
00238 ULONG Kd_VDS_Mask;
00239 ULONG Kd_VDSBAS_Mask;
00240 ULONG Kd_VDSDYNDR_Mask;
00241 ULONG Kd_VDSUTIL_Mask;
00242 ULONG Kd_DFRGIFC_Mask;
00243 ULONG Kd_DEFAULT_Mask;
00244 ULONG Kd_MM_Mask;
00245 ULONG Kd_DFSC_Mask;
00246 ULONG Kd_WOW64_Mask;
00247 ULONG Kd_ENDOFTABLE_Mask;
00248
00249
00250
00251
00252 PULONG KdComponentTable[104] =
00253 {
00254 &Kd_SYSTEM_Mask,
00255 &Kd_SMSS_Mask,
00256 &Kd_SETUP_Mask,
00257 &Kd_NTFS_Mask,
00258 &Kd_FSTUB_Mask,
00259 &Kd_CRASHDUMP_Mask,
00260 &Kd_CDAUDIO_Mask,
00261 &Kd_CDROM_Mask,
00262 &Kd_CLASSPNP_Mask,
00263 &Kd_DISK_Mask,
00264 &Kd_REDBOOK_Mask,
00265 &Kd_STORPROP_Mask,
00266 &Kd_SCSIPORT_Mask,
00267 &Kd_SCSIMINIPORT_Mask,
00268 &Kd_CONFIG_Mask,
00269 &Kd_I8042PRT_Mask,
00270 &Kd_SERMOUSE_Mask,
00271 &Kd_LSERMOUS_Mask,
00272 &Kd_KBDHID_Mask,
00273 &Kd_MOUHID_Mask,
00274 &Kd_KBDCLASS_Mask,
00275 &Kd_MOUCLASS_Mask,
00276 &Kd_TWOTRACK_Mask,
00277 &Kd_WMILIB_Mask,
00278 &Kd_ACPI_Mask,
00279 &Kd_AMLI_Mask,
00280 &Kd_HALIA64_Mask,
00281 &Kd_VIDEO_Mask,
00282 &Kd_SVCHOST_Mask,
00283 &Kd_VIDEOPRT_Mask,
00284 &Kd_TCPIP_Mask,
00285 &Kd_DMSYNTH_Mask,
00286 &Kd_NTOSPNP_Mask,
00287 &Kd_FASTFAT_Mask,
00288 &Kd_SAMSS_Mask,
00289 &Kd_PNPMGR_Mask,
00290 &Kd_NETAPI_Mask,
00291 &Kd_SCSERVER_Mask,
00292 &Kd_SCCLIENT_Mask,
00293 &Kd_SERIAL_Mask,
00294 &Kd_SERENUM_Mask,
00295 &Kd_UHCD_Mask,
00296 &Kd_RPCPROXY_Mask,
00297 &Kd_AUTOCHK_Mask,
00298 &Kd_DCOMSS_Mask,
00299 &Kd_UNIMODEM_Mask,
00300 &Kd_SIS_Mask,
00301 &Kd_FLTMGR_Mask,
00302 &Kd_WMICORE_Mask,
00303 &Kd_BURNENG_Mask,
00304 &Kd_IMAPI_Mask,
00305 &Kd_SXS_Mask,
00306 &Kd_FUSION_Mask,
00307 &Kd_IDLETASK_Mask,
00308 &Kd_SOFTPCI_Mask,
00309 &Kd_TAPE_Mask,
00310 &Kd_MCHGR_Mask,
00311 &Kd_IDEP_Mask,
00312 &Kd_PCIIDE_Mask,
00313 &Kd_FLOPPY_Mask,
00314 &Kd_FDC_Mask,
00315 &Kd_TERMSRV_Mask,
00316 &Kd_W32TIME_Mask,
00317 &Kd_PREFETCHER_Mask,
00318 &Kd_RSFILTER_Mask,
00319 &Kd_FCPORT_Mask,
00320 &Kd_PCI_Mask,
00321 &Kd_DMIO_Mask,
00322 &Kd_DMCONFIG_Mask,
00323 &Kd_DMADMIN_Mask,
00324 &Kd_WSOCKTRANSPORT_Mask,
00325 &Kd_VSS_Mask,
00326 &Kd_PNPMEM_Mask,
00327 &Kd_PROCESSOR_Mask,
00328 &Kd_DMSERVER_Mask,
00329 &Kd_SR_Mask,
00330 &Kd_INFINIBAND_Mask,
00331 &Kd_IHVDRIVER_Mask,
00332 &Kd_IHVVIDEO_Mask,
00333 &Kd_IHVAUDIO_Mask,
00334 &Kd_IHVNETWORK_Mask,
00335 &Kd_IHVSTREAMING_Mask,
00336 &Kd_IHVBUS_Mask,
00337 &Kd_HPS_Mask,
00338 &Kd_RTLTHREADPOOL_Mask,
00339 &Kd_LDR_Mask,
00340 &Kd_TCPIP6_Mask,
00341 &Kd_ISAPNP_Mask,
00342 &Kd_SHPC_Mask,
00343 &Kd_STORPORT_Mask,
00344 &Kd_STORMINIPORT_Mask,
00345 &Kd_PRINTSPOOLER_Mask,
00346 &Kd_VSSDYNDISK_Mask,
00347 &Kd_VERIFIER_Mask,
00348 &Kd_VDS_Mask,
00349 &Kd_VDSBAS_Mask,
00350 &Kd_VDSDYNDR_Mask,
00351 &Kd_VDSUTIL_Mask,
00352 &Kd_DFRGIFC_Mask,
00353 &Kd_DEFAULT_Mask,
00354 &Kd_MM_Mask,
00355 &Kd_DFSC_Mask,
00356 &Kd_WOW64_Mask,
00357 &Kd_ENDOFTABLE_Mask,
00358 };
00359
00360 ULONG KdComponentTableSize = sizeof(KdComponentTable) / sizeof(KdComponentTable[0]);
00361
00362
00363
00364
00365 LIST_ENTRY KdpDebuggerDataListHead;
00366 KSPIN_LOCK KdpDataSpinLock;
00367
00368
00369
00370
00371 DBGKD_GET_VERSION64 KdVersionBlock =
00372 {
00373 0,
00374 0,
00375 DBGKD_64BIT_PROTOCOL_VERSION2,
00376 CURRENT_KD_SECONDARY_VERSION,
00377 #if defined(_WIN64)
00378 DBGKD_VERS_FLAG_DATA | DBGKD_VERS_FLAG_PTR64,
00379 #else
00380 DBGKD_VERS_FLAG_DATA,
00381 #endif
00382 IMAGE_FILE_MACHINE_NATIVE,
00383 PACKET_TYPE_MAX,
00384 0,
00385 0,
00386 DBGKD_SIMULATION_NONE,
00387 {0},
00388 0,
00389 0,
00390 0
00391 };
00392 KDDEBUGGER_DATA64 KdDebuggerDataBlock =
00393 {
00394 {{0}},
00395 0,
00396 {(ULONG_PTR)RtlpBreakWithStatusInstruction},
00397 0,
00398 FIELD_OFFSET(KTHREAD, CallbackStack),
00399 FIELD_OFFSET(KCALLOUT_FRAME, CallbackStack),
00400 FIELD_OFFSET(KCALLOUT_FRAME, CBSTACK_FRAME_POINTER),
00401 FALSE,
00402 {(ULONG_PTR)KiCallUserMode},
00403 0,
00404 {(ULONG_PTR)&PsLoadedModuleList},
00405 {(ULONG_PTR)&PsActiveProcessHead},
00406 {(ULONG_PTR)&PspCidTable},
00407 {(ULONG_PTR)&ExpSystemResourcesList},
00408 {(ULONG_PTR)ExpPagedPoolDescriptor},
00409 {(ULONG_PTR)&ExpNumberOfPagedPools},
00410 {(ULONG_PTR)&KeTimeIncrement},
00411 {(ULONG_PTR)&KeBugcheckCallbackListHead},
00412 {(ULONG_PTR)KiBugCheckData},
00413 {(ULONG_PTR)&IopErrorLogListHead},
00414 {(ULONG_PTR)&ObpRootDirectoryObject},
00415 {(ULONG_PTR)&ObpTypeObjectType},
00416 {(ULONG_PTR)&MmSystemCacheStart},
00417 {(ULONG_PTR)&MmSystemCacheEnd},
00418 {(ULONG_PTR)&MmSystemCacheWs},
00419 {(ULONG_PTR)&MmPfnDatabase},
00420 {(ULONG_PTR)MmSystemPtesStart},
00421 {(ULONG_PTR)MmSystemPtesEnd},
00422 {(ULONG_PTR)&MmSubsectionBase},
00423 {(ULONG_PTR)&MmNumberOfPagingFiles},
00424 {(ULONG_PTR)&MmLowestPhysicalPage},
00425 {(ULONG_PTR)&MmHighestPhysicalPage},
00426 {(ULONG_PTR)&MmNumberOfPhysicalPages},
00427 {(ULONG_PTR)&MmMaximumNonPagedPoolInBytes},
00428 {(ULONG_PTR)&MmNonPagedSystemStart},
00429 {(ULONG_PTR)&MmNonPagedPoolStart},
00430 {(ULONG_PTR)&MmNonPagedPoolEnd},
00431 {(ULONG_PTR)&MmPagedPoolStart},
00432 {(ULONG_PTR)&MmPagedPoolEnd},
00433 {(ULONG_PTR)&MmPagedPoolInfo},
00434 PAGE_SIZE,
00435 {(ULONG_PTR)&MmSizeOfPagedPoolInBytes},
00436 {(ULONG_PTR)&MmTotalCommitLimit},
00437 {(ULONG_PTR)&MmTotalCommittedPages},
00438 {(ULONG_PTR)&MmSharedCommit},
00439 {(ULONG_PTR)&MmDriverCommit},
00440 {(ULONG_PTR)&MmProcessCommit},
00441 {(ULONG_PTR)&MmPagedPoolCommit},
00442 {0},
00443 {(ULONG_PTR)&MmZeroedPageListHead},
00444 {(ULONG_PTR)&MmFreePageListHead},
00445 {(ULONG_PTR)&MmStandbyPageListHead},
00446 {(ULONG_PTR)&MmModifiedPageListHead},
00447 {(ULONG_PTR)&MmModifiedNoWritePageListHead},
00448 {(ULONG_PTR)&MmAvailablePages},
00449 {(ULONG_PTR)&MmResidentAvailablePages},
00450 {(ULONG_PTR)&PoolTrackTable},
00451 {(ULONG_PTR)&NonPagedPoolDescriptor},
00452 {(ULONG_PTR)&MmHighestUserAddress},
00453 {(ULONG_PTR)&MmSystemRangeStart},
00454 {(ULONG_PTR)&MmUserProbeAddress},
00455 {(ULONG_PTR)KdPrintDefaultCircularBuffer},
00456 {(ULONG_PTR)KdPrintDefaultCircularBuffer + 1},
00457 {(ULONG_PTR)&KdPrintWritePointer},
00458 {(ULONG_PTR)&KdPrintRolloverCount},
00459 {(ULONG_PTR)&MmLoadedUserImageList},
00460 {(ULONG_PTR)&NtBuildLab},
00461 {0},
00462 {(ULONG_PTR)KiProcessorBlock},
00463 {(ULONG_PTR)&MmUnloadedDrivers},
00464 {(ULONG_PTR)&MmLastUnloadedDrivers},
00465 {(ULONG_PTR)&MmTriageActionTaken},
00466 {(ULONG_PTR)&MmSpecialPoolTag},
00467 {(ULONG_PTR)&KernelVerifier},
00468 {(ULONG_PTR)&MmVerifierData},
00469 {(ULONG_PTR)&MmAllocatedNonPagedPool},
00470 {(ULONG_PTR)&MmPeakCommitment},
00471 {(ULONG_PTR)&MmtotalCommitLimitMaximum},
00472 {(ULONG_PTR)&CmNtCSDVersion},
00473 {(ULONG_PTR)&MmPhysicalMemoryBlock},
00474 {(ULONG_PTR)&MmSessionBase},
00475 {(ULONG_PTR)&MmSessionSize},
00476 {0},
00477 {0},
00478 FIELD_OFFSET(KTHREAD, NextProcessor),
00479 FIELD_OFFSET(KTHREAD, Teb),
00480 FIELD_OFFSET(KTHREAD, KernelStack),
00481 FIELD_OFFSET(KTHREAD, InitialStack),
00482 FIELD_OFFSET(KTHREAD, ApcState.Process),
00483 FIELD_OFFSET(KTHREAD, State),
00484 0,
00485 0,
00486 sizeof(EPROCESS),
00487 FIELD_OFFSET(EPROCESS, Peb),
00488 FIELD_OFFSET(EPROCESS, InheritedFromUniqueProcessId),
00489 FIELD_OFFSET(EPROCESS, Pcb.DirectoryTableBase),
00490 sizeof(KPRCB),
00491 FIELD_OFFSET(KPRCB, DpcRoutineActive),
00492 FIELD_OFFSET(KPRCB, CurrentThread),
00493 FIELD_OFFSET(KPRCB, MHz),
00494 FIELD_OFFSET(KPRCB, CpuType),
00495 FIELD_OFFSET(KPRCB, VendorString),
00496 FIELD_OFFSET(KPRCB, ProcessorState.ContextFrame),
00497 FIELD_OFFSET(KPRCB, Number),
00498 sizeof(ETHREAD),
00499 {(ULONG_PTR)KdPrintDefaultCircularBuffer},
00500 {(ULONG_PTR)&KdPrintBufferSize},
00501 {(ULONG_PTR)&KeLoaderBlock},
00502 sizeof(KPCR),
00503 KPCR_SELF_PCR_OFFSET,
00504 KPCR_CURRENT_PRCB_OFFSET,
00505 KPCR_CONTAINED_PRCB_OFFSET,
00506 0,
00507 0,
00508 KPCR_INITIAL_STACK_OFFSET,
00509 KPCR_STACK_LIMIT_OFFSET,
00510 KPRCB_PCR_PAGE_OFFSET,
00511 FIELD_OFFSET(KPRCB, ProcessorState.SpecialRegisters),
00512 #if defined(_X86_)
00513
00514
00515
00516 KGDT_R0_CODE,
00517 KGDT_R0_DATA,
00518 KGDT_R0_PCR,
00519 KGDT_R3_CODE,
00520 KGDT_R3_DATA,
00521 KGDT_R3_TEB,
00522 KGDT_LDT,
00523 KGDT_TSS,
00524 0,
00525 0,
00526 #elif defined(_AMD64_)
00527
00528
00529
00530 KGDT64_R0_CODE,
00531 KGDT64_R3_DATA,
00532 KGDT64_R3_DATA,
00533 KGDT64_R3_CODE,
00534 KGDT64_R3_DATA,
00535 KGDT64_R3_DATA,
00536 0,
00537 KGDT64_SYS_TSS,
00538 0,
00539 0,
00540 #else
00541
00542
00543
00544 0,
00545 0,
00546 0,
00547 0,
00548 0,
00549 0,
00550 0,
00551 0,
00552 0,
00553 0,
00554 #endif
00555 {(ULONG_PTR)&IopNumTriageDumpDataBlocks},
00556 {(ULONG_PTR)IopTriageDumpDataBlocks},
00557 };