📄 ntoskrnl.h
字号:
int Size;
_DEVICE_OBJECT* DeviceObject;
_VPB* Vpb;
void* FsContext;
void* FsContext2;
_SECTION_OBJECT_POINTERS* SectionObjectPointer;
void* PrivateCacheMap;
int FinalStatus;
_FILE_OBJECT* RelatedFileObject;
DWORD LockOperation;
DWORD DeletePending;
DWORD ReadAccess;
DWORD WriteAccess;
DWORD DeleteAccess;
DWORD SharedRead;
DWORD SharedWrite;
DWORD SharedDelete;
DWORD Flags;
_UNICODE_STRING FileName;
_LARGE_INTEGER CurrentByteOffset;
DWORD Waiters;
DWORD Busy;
void* LastLock;
_KEVENT Lock;
_KEVENT Event;
_IO_COMPLETION_CONTEXT* CompletionContext;
};
struct _MBCB {
int NodeTypeCode;
int NodeIsInZone;
DWORD PagesToWrite;
DWORD DirtyPages;
DWORD Reserved;
_LIST_ENTRY BitmapRanges;
int ResumeWritePage;
_BITMAP_RANGE BitmapRange1;
_BITMAP_RANGE BitmapRange2;
_BITMAP_RANGE BitmapRange3;
};
struct _CACHE_MANAGER_CALLBACKS {
DWORD (*AcquireForLazyWrite)(void*, DWORD);
void (*ReleaseFromLazyWrite)(void*);
DWORD (*AcquireForReadAhead)(void*, DWORD);
void (*ReleaseFromReadAhead)(void*);
};
struct _CACHE_UNINITIALIZE_EVENT {
_CACHE_UNINITIALIZE_EVENT* Next;
_KEVENT Event;
};
struct _PRIVATE_CACHE_MAP {
int NodeTypeCode;
_PRIVATE_CACHE_MAP_FLAGS Flags;
DWORD UlongFlags;
DWORD ReadAheadMask;
_FILE_OBJECT* FileObject;
_LARGE_INTEGER FileOffset1;
_LARGE_INTEGER BeyondLastByte1;
_LARGE_INTEGER FileOffset2;
_LARGE_INTEGER BeyondLastByte2;
_LARGE_INTEGER ReadAheadOffset[2];
DWORD ReadAheadLength[2];
DWORD ReadAheadSpinLock;
_LIST_ENTRY PrivateLinks;
};
struct _SHARED_CACHE_MAP {
int NodeTypeCode;
int NodeByteSize;
DWORD OpenCount;
_LARGE_INTEGER FileSize;
_LIST_ENTRY BcbList;
_LARGE_INTEGER SectionSize;
_LARGE_INTEGER ValidDataLength;
_LARGE_INTEGER ValidDataGoal;
_VACB* InitialVacbs[4];
_VACB** Vacbs;
_FILE_OBJECT* FileObject;
_VACB* ActiveVacb;
void* NeedToZero;
DWORD ActivePage;
DWORD NeedToZeroPage;
DWORD ActiveVacbSpinLock;
DWORD VacbActiveCount;
DWORD DirtyPages;
_LIST_ENTRY SharedCacheMapLinks;
DWORD Flags;
int Status;
_MBCB* Mbcb;
void* Section;
_KEVENT* CreateEvent;
_KEVENT* WaitOnActiveCount;
DWORD PagesToWrite;
int BeyondLastFlush;
_CACHE_MANAGER_CALLBACKS* Callbacks;
void* LazyWriteContext;
_LIST_ENTRY PrivateList;
void* LogHandle;
void (*FlushToLsnRoutine)(void*, _LARGE_INTEGER);
DWORD DirtyPageThreshold;
DWORD LazyWritePassCount;
_CACHE_UNINITIALIZE_EVENT* UninitializeEvent;
_VACB* NeedToZeroVacb;
DWORD BcbSpinLock;
void* Reserved;
_KEVENT Event;
_EX_PUSH_LOCK VacbPushLock;
_PRIVATE_CACHE_MAP PrivateCacheMap;
};
struct _VACB_LEVEL_REFERENCE {
int Reference;
int SpecialReference;
};
struct _VACB_LEVEL_REFERENCE {
int Reference;
int SpecialReference;
};
struct _HEAP_ENTRY {
DWORD Size;
DWORD PreviousSize;
void* SubSegment;
DWORD SegmentIndex;
DWORD Flags;
DWORD UnusedBytes;
DWORD SmallTagIndex;
};
struct _HEAP_ENTRY {
DWORD Size;
DWORD PreviousSize;
void* SubSegment;
DWORD SegmentIndex;
DWORD Flags;
DWORD UnusedBytes;
DWORD SmallTagIndex;
};
struct _HEAP_UCR_SEGMENT {
_HEAP_UCR_SEGMENT* Next;
DWORD ReservedSize;
DWORD CommittedSize;
DWORD filler;
};
struct _HEAP_UCR_SEGMENT {
_HEAP_UCR_SEGMENT* Next;
DWORD ReservedSize;
DWORD CommittedSize;
DWORD filler;
};
struct _OBJECT_SYMBOLIC_LINK {
_LARGE_INTEGER CreationTime;
_UNICODE_STRING LinkTarget;
_UNICODE_STRING LinkTargetRemaining;
void* LinkTargetObject;
DWORD DosDeviceDriveIndex;
};
struct _OBJECT_SYMBOLIC_LINK {
_LARGE_INTEGER CreationTime;
_UNICODE_STRING LinkTarget;
_UNICODE_STRING LinkTargetRemaining;
void* LinkTargetObject;
DWORD DosDeviceDriveIndex;
};
struct _POOL_BLOCK_HEAD {
_POOL_HEADER Header;
_LIST_ENTRY List;
};
struct _POOL_HEADER {
DWORD PreviousSize:9; // bit offset: 00, len=9
DWORD PoolIndex:7; // bit offset: 09, len=7
DWORD BlockSize:9; // bit offset: 02, len=9
DWORD PoolType:7; // bit offset: 02, len=7
DWORD Ulong1;
_EPROCESS* ProcessBilled;
DWORD PoolTag;
DWORD AllocatorBackTraceIndex;
DWORD PoolTagHash;
};
struct _POOL_BLOCK_HEAD {
_POOL_HEADER Header;
_LIST_ENTRY List;
};
struct _HEAP {
_HEAP_ENTRY Entry;
DWORD Signature;
DWORD Flags;
DWORD ForceFlags;
DWORD VirtualMemoryThreshold;
DWORD SegmentReserve;
DWORD SegmentCommit;
DWORD DeCommitFreeBlockThreshold;
DWORD DeCommitTotalFreeThreshold;
DWORD TotalFreeSize;
DWORD MaximumAllocationSize;
DWORD ProcessHeapsListIndex;
DWORD HeaderValidateLength;
void* HeaderValidateCopy;
DWORD NextAvailableTagIndex;
DWORD MaximumTagIndex;
_HEAP_TAG_ENTRY* TagEntries;
_HEAP_UCR_SEGMENT* UCRSegments;
_HEAP_UNCOMMMTTED_RANGE* UnusedUnCommittedRanges;
DWORD AlignRound;
DWORD AlignMask;
_LIST_ENTRY VirtualAllocdBlocks;
_HEAP_SEGMENT* Segments[64];
__unnamed u;
__unnamed u2;
DWORD AllocatorBackTraceIndex;
DWORD NonDedicatedListLength;
void* LargeBlocksIndex;
_HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries;
_LIST_ENTRY FreeLists[128];
_HEAP_LOCK* LockVariable;
int (*CommitRoutine)(void*, void**, DWORD*);
void* FrontEndHeap;
DWORD FrontHeapLockCount;
DWORD FrontEndHeapType;
DWORD LastSegmentIndex;
};
struct _HEAP_TAG_ENTRY {
DWORD Allocs;
DWORD Frees;
DWORD Size;
DWORD TagIndex;
DWORD CreatorBackTraceIndex;
DWORD TagName[24];
};
struct _HEAP_UNCOMMMTTED_RANGE {
_HEAP_UNCOMMMTTED_RANGE* Next;
DWORD Address;
DWORD Size;
DWORD filler;
};
struct _HEAP_SEGMENT {
_HEAP_ENTRY Entry;
DWORD Signature;
DWORD Flags;
_HEAP* Heap;
DWORD LargestUnCommittedRange;
void* BaseAddress;
DWORD NumberOfPages;
_HEAP_ENTRY* FirstEntry;
_HEAP_ENTRY* LastValidEntry;
DWORD NumberOfUnCommittedPages;
DWORD NumberOfUnCommittedRanges;
_HEAP_UNCOMMMTTED_RANGE* UnCommittedRanges;
DWORD AllocatorBackTraceIndex;
DWORD Reserved;
_HEAP_ENTRY* LastEntryInSegment;
};
struct __unnamed {
DWORD FreeListsInUseUlong[4];
DWORD FreeListsInUseBytes[16];
};
struct __unnamed {
DWORD FreeListsInUseTerminate;
DWORD DecommitCount;
};
struct _HEAP_PSEUDO_TAG_ENTRY {
DWORD Allocs;
DWORD Frees;
DWORD Size;
};
struct _HEAP_LOCK {
__unnamed Lock;
};
struct _HEAP {
_HEAP_ENTRY Entry;
DWORD Signature;
DWORD Flags;
DWORD ForceFlags;
DWORD VirtualMemoryThreshold;
DWORD SegmentReserve;
DWORD SegmentCommit;
DWORD DeCommitFreeBlockThreshold;
DWORD DeCommitTotalFreeThreshold;
DWORD TotalFreeSize;
DWORD MaximumAllocationSize;
DWORD ProcessHeapsListIndex;
DWORD HeaderValidateLength;
void* HeaderValidateCopy;
DWORD NextAvailableTagIndex;
DWORD MaximumTagIndex;
_HEAP_TAG_ENTRY* TagEntries;
_HEAP_UCR_SEGMENT* UCRSegments;
_HEAP_UNCOMMMTTED_RANGE* UnusedUnCommittedRanges;
DWORD AlignRound;
DWORD AlignMask;
_LIST_ENTRY VirtualAllocdBlocks;
_HEAP_SEGMENT* Segments[64];
__unnamed u;
__unnamed u2;
DWORD AllocatorBackTraceIndex;
DWORD NonDedicatedListLength;
void* LargeBlocksIndex;
_HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries;
_LIST_ENTRY FreeLists[128];
_HEAP_LOCK* LockVariable;
int (*CommitRoutine)(void*, void**, DWORD*);
void* FrontEndHeap;
DWORD FrontHeapLockCount;
DWORD FrontEndHeapType;
DWORD LastSegmentIndex;
};
struct _DISPATCHER_HEADER {
DWORD Type;
DWORD Absolute;
DWORD Size;
DWORD Inserted;
int SignalState;
_LIST_ENTRY WaitListHead;
};
struct _LDR_DATA_TABLE_ENTRY {
_LIST_ENTRY InLoadOrderLinks;
_LIST_ENTRY InMemoryOrderLinks;
_LIST_ENTRY InInitializationOrderLinks;
void* DllBase;
void* EntryPoint;
DWORD SizeOfImage;
_UNICODE_STRING FullDllName;
_UNICODE_STRING BaseDllName;
DWORD Flags;
DWORD LoadCount;
DWORD TlsIndex;
_LIST_ENTRY HashLinks;
void* SectionPointer;
DWORD CheckSum;
DWORD TimeDateStamp;
void* LoadedImports;
void* EntryPointActivationContext;
};
struct _LDR_DATA_TABLE_ENTRY {
_LIST_ENTRY InLoadOrderLinks;
_LIST_ENTRY InMemoryOrderLinks;
_LIST_ENTRY InInitializationOrderLinks;
void* DllBase;
void* EntryPoint;
DWORD SizeOfImage;
_UNICODE_STRING FullDllName;
_UNICODE_STRING BaseDllName;
DWORD Flags;
DWORD LoadCount;
DWORD TlsIndex;
_LIST_ENTRY HashLinks;
void* SectionPointer;
DWORD CheckSum;
DWORD TimeDateStamp;
void* LoadedImports;
void* EntryPointActivationContext;
};
struct _HEAP_UNCOMMMTTED_RANGE {
_HEAP_UNCOMMMTTED_RANGE* Next;
DWORD Address;
DWORD Size;
DWORD filler;
};
struct _VI_DEADLOCK_GLOBALS {
DWORD Nodes[2];
DWORD Resources[2];
DWORD Threads[2];
int TimeAcquire;
int TimeRelease;
DWORD BytesAllocated;
_LIST_ENTRY* ResourceDatabase;
_LIST_ENTRY* ThreadDatabase;
DWORD AllocationFailures;
DWORD NodesTrimmedBasedOnAge;
DWORD NodesTrimmedBasedOnCount;
DWORD NodesSearched;
DWORD MaxNodesSearched;
DWORD SequenceNumber;
DWORD RecursionDepthLimit;
DWORD SearchedNodesLimit;
DWORD DepthLimitHits;
DWORD SearchLimitHits;
DWORD ABC_ACB_Skipped;
_LIST_ENTRY FreeResourceList;
_LIST_ENTRY FreeThreadList;
_LIST_ENTRY FreeNodeList;
DWORD FreeResourceCount;
DWORD FreeThreadCount;
DWORD FreeNodeCount;
void* Instigator;
DWORD NumberOfParticipants;
_VI_DEADLOCK_NODE* Participant[32];
DWORD CacheReductionInProgress;
};
struct _VI_DEADLOCK_NODE {
_VI_DEADLOCK_NODE* Parent;
_LIST_ENTRY ChildrenList;
_LIST_ENTRY SiblingsList;
_LIST_ENTRY ResourceList;
_LIST_ENTRY FreeListEntry;
_VI_DEADLOCK_RESOURCE* Root;
_VI_DEADLOCK_THREAD* ThreadEntry;
DWORD Active:1; // bit offset: 24, len=1
DWORD OnlyTryAcquireUsed:1; // bit offset: 24, len=1
DWORD SequenceNumber:30; // bit offset: 24, len=30
void* StackTrace[8];
void* ParentStackTrace[8];
};
struct _VI_DEADLOCK_GLOBALS {
DWORD Nodes[2];
DWORD Resources[2];
DWORD Threads[2];
int TimeAcquire;
int TimeRelease;
DWORD BytesAllocated;
_LIST_ENTRY* ResourceDatabase;
_LIST_ENTRY* ThreadDatabase;
DWORD AllocationFailures;
DWORD NodesTrimmedBasedOnAge;
DWORD NodesTrimmedBasedOnCount;
DWORD NodesSearched;
DWORD MaxNodesSearched;
DWORD SequenceNumber;
DWORD RecursionDepthLimit;
DWORD SearchedNodesLimit;
DWORD DepthLimitHits;
DWORD SearchLimitHits;
DWORD ABC_ACB_Skipped;
_LIST_ENTRY FreeResourceList;
_LIST_ENTRY FreeThreadList;
_LIST_ENTRY FreeNodeList;
DWORD FreeResourceCount;
DWORD FreeThreadCount;
DWORD FreeNodeCount;
void* Instigator;
DWORD NumberOfParticipants;
_VI_DEADLOCK_NODE* Participant[32];
DWORD CacheReductionInProgress;
};
enum _PF_SCENARIO_TYPE {
PfApplicationLaunchScenarioType,
PfSystemBootScenarioType,
PfMaxScenarioType,
};
struct _THERMAL_INFORMATION {
DWORD ThermalStamp;
DWORD ThermalConstant1;
DWORD ThermalConstant2;
DWORD Processors;
DWORD SamplingPeriod;
DWORD CurrentTemperature;
DWORD PassiveTripPoint;
DWORD CriticalTripPoint;
DWORD ActiveTripPointCount;
DWORD ActiveTripPoint[10];
};
struct _THERMAL_INFORMATION {
DWORD ThermalStamp;
DWORD ThermalConstant1;
DWORD ThermalConstant2;
DWORD Processors;
DWORD SamplingPeriod;
DWORD CurrentTemperature;
DWORD PassiveTripPoint;
DWORD CriticalTripPoint;
DWORD ActiveTripPointCount;
DWORD ActiveTripPoint[10];
};
struct _DBGKD_SEARCH_MEMORY {
DWORD SearchAddress;
DWORD FoundAddress;
DWORD SearchLength;
DWORD PatternLength;
};
struct _SECTION_OBJECT {
void* StartingVa;
void* EndingVa;
void* Parent;
void* LeftChild;
void* RightChild;
_SEGMENT_OBJECT* Segment;
};
struct _SEGMENT_OBJECT {
void* BaseAddress;
DWORD TotalNumberOfPtes;
_LARGE_INTEGER SizeOfSegment;
DWORD NonExtendedPtes;
DWORD ImageCommitment;
_CONTROL_AREA* ControlArea;
_SUBSECTION* Subsection;
_LARGE_CONTROL_AREA* LargeControlArea;
_MMSECTION_FLAGS* MmSectionFlags;
_MMSUBSECTION_FLAGS* MmSubSectionFlags;
};
struct _SECTION_OBJECT {
void* StartingVa;
void* EndingVa;
void* Parent;
void* LeftChild;
void* RightChild;
_SEGMENT_OBJECT* Segment;
};
struct _POWER_STATE {
enum _SYSTEM_POWER_STATE SystemState;
enum _DEVICE_POWER_STATE DeviceState;
};
enum _SYSTEM_POWER_STATE {
PowerSystemUnspecified,
PowerSystemWorking,
PowerSystemSleeping1,
PowerSystemSleeping2,
PowerSystemSleeping3,
PowerSystemHibernate,
PowerSystemShutdown,
PowerSystemMaximum,
};
enum _DEVICE_POWER_STATE {
PowerDeviceUnspecified,
PowerDeviceD0,
PowerDeviceD1,
PowerDeviceD2,
PowerDeviceD3,
PowerDeviceMaximum,
};
struct _POWER_STATE {
enum _SYSTEM_POWER_STATE Sy
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -