⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ntoskrnl.h

📁 一个 windows 内核级别的调试器
💻 H
📖 第 1 页 / 共 5 页
字号:
	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 + -