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

📄 win32k.h

📁 一个 windows 内核级别的调试器
💻 H
📖 第 1 页 / 共 4 页
字号:
	MemoryLoadedProgram,
	MemoryFirmwareTemporary,
	MemoryFirmwarePermanent,
	MemoryFreeContiguous,
	MemorySpecialMemory,
	MemoryMaximum,
};

enum GDIObjType {
	GDIObjType_DEF_TYPE,
	GDIObjType_DC_TYPE,
	GDIObjType_UNUSED1_TYPE,
	GDIObjType_UNUSED2_TYPE,
	GDIObjType_RGN_TYPE,
	GDIObjType_SURF_TYPE,
	GDIObjType_CLIENTOBJ_TYPE,
	GDIObjType_PATH_TYPE,
	GDIObjType_PAL_TYPE,
	GDIObjType_ICMLCS_TYPE,
	GDIObjType_LFONT_TYPE,
	GDIObjType_RFONT_TYPE,
	GDIObjType_PFE_TYPE,
	GDIObjType_PFT_TYPE,
	GDIObjType_ICMCXF_TYPE,
	GDIObjType_SPRITE_TYPE,
	GDIObjType_BRUSH_TYPE,
	GDIObjType_UMPD_TYPE,
	GDIObjType_UNUSED4_TYPE,
	GDIObjType_SPACE_TYPE,
	GDIObjType_UNUSED5_TYPE,
	GDIObjType_META_TYPE,
	GDIObjType_EFSTATE_TYPE,
	GDIObjType_BMFD_TYPE,
	GDIObjType_VTFD_TYPE,
	GDIObjType_TTFD_TYPE,
	GDIObjType_RC_TYPE,
	GDIObjType_TEMP_TYPE,
	GDIObjType_DRVOBJ_TYPE,
	GDIObjType_DCIOBJ_TYPE,
	GDIObjType_SPOOL_TYPE,
	GDIObjType_MAX_TYPE,
	GDIObjTypeTotal,
};

struct _DEVOBJ_EXTENSION {
	int Type;
	DWORD Size;
	_DEVICE_OBJECT* DeviceObject;
};

struct _ENTRY {
	_EINFO einfo;
	_OBJECTOWNER ObjectOwner;
	DWORD FullUnique;
	DWORD Objt;
	DWORD Flags;
	void* pUser;
};

struct _EINFO {
	_BASEOBJECT* pobj;
	HOBJ__* hFree;
};

struct _OBJECTOWNER {
	_OBJECTOWNER_S Share;
	DWORD ulObj;
};

struct _ENTRY {
	_EINFO einfo;
	_OBJECTOWNER ObjectOwner;
	DWORD FullUnique;
	DWORD Objt;
	DWORD Flags;
	void* pUser;
};

struct _MDL {
	_MDL* Next;
	int Size;
	int MdlFlags;
	_EPROCESS* Process;
	void* MappedSystemVa;
	void* StartVa;
	DWORD ByteCount;
	DWORD ByteOffset;
};

struct _OBJECTOWNER_S {
	DWORD Lock:1; 	// bit offset: 00, len=1
	DWORD Pid_Shifted:31; 	// bit offset: 01, len=31
};

struct _OBJECTOWNER {
	_OBJECTOWNER_S Share;
	DWORD ulObj;
};

struct _DISPATCHER_HEADER {
	DWORD Type;
	DWORD Absolute;
	DWORD Size;
	DWORD Inserted;
	int SignalState;
	_LIST_ENTRY WaitListHead;
};

struct _KEVENT {
	_DISPATCHER_HEADER Header;
};

struct _IO_STATUS_BLOCK {
	int Status;
	void* Pointer;
	DWORD Information;
};

struct _SECURITY_SUBJECT_CONTEXT {
	void* ClientToken;
	enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
	void* PrimaryToken;
	void* ProcessAuditId;
};

struct _INITIAL_PRIVILEGE_SET {
	DWORD PrivilegeCount;
	DWORD Control;
	_LUID_AND_ATTRIBUTES Privilege[3];
};

struct _PRIVILEGE_SET {
	DWORD PrivilegeCount;
	DWORD Control;
	_LUID_AND_ATTRIBUTES Privilege[1];
};

struct _ACCESS_STATE::__unnamed {
	_INITIAL_PRIVILEGE_SET InitialPrivilegeSet;
	_PRIVILEGE_SET PrivilegeSet;
};

struct _ACCESS_STATE {
	_LUID OperationID;
	DWORD SecurityEvaluated;
	DWORD GenerateAudit;
	DWORD GenerateOnClose;
	DWORD PrivilegesAllocated;
	DWORD Flags;
	DWORD RemainingDesiredAccess;
	DWORD PreviouslyGrantedAccess;
	DWORD OriginalDesiredAccess;
	_SECURITY_SUBJECT_CONTEXT SubjectSecurityContext;
	void* SecurityDescriptor;
	void* AuxData;
	_ACCESS_STATE::__unnamed Privileges;
	DWORD AuditPrivileges;
	_UNICODE_STRING ObjectName;
	_UNICODE_STRING ObjectTypeName;
};

struct _ERESOURCE::__unnamed {
	void* Address;
	DWORD CreatorBackTraceIndex;
};

struct _KSEMAPHORE {
	_DISPATCHER_HEADER Header;
	int Limit;
};

struct _KAPC {
	int Type;
	int Size;
	DWORD Spare0;
	_KTHREAD* Thread;
	_LIST_ENTRY ApcListEntry;
	void (*KernelRoutine)(_KAPC*, void (*)(void*, void*, void*)*, void**, void**, void**);
	void (*RundownRoutine)(_KAPC*);
	void (*NormalRoutine)(void*, void*, void*);
	void* NormalContext;
	void* SystemArgument1;
	void* SystemArgument2;
	char ApcStateIndex;
	char ApcMode;
	DWORD Inserted;
};

struct _OBJECT_DUMP_CONTROL {
	void* Stream;
	DWORD Detail;
};

enum _SECURITY_IMPERSONATION_LEVEL {
	SecurityAnonymous,
	SecurityIdentification,
	SecurityImpersonation,
	SecurityDelegation,
};

struct _SECURITY_SUBJECT_CONTEXT {
	void* ClientToken;
	enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
	void* PrimaryToken;
	void* ProcessAuditId;
};

struct _EX_RUNDOWN_REF::__unnamed {
	DWORD Count;
	void* Ptr;
};

struct _DISPATCHER_HEADER {
	DWORD Type;
	DWORD Absolute;
	DWORD Size;
	DWORD Inserted;
	int SignalState;
	_LIST_ENTRY WaitListHead;
};

struct _BASEOBJECT {
	void* hHmgr;
	DWORD ulShareCount;
	DWORD cExclusiveLock;
	DWORD BaseFlags;
	_W32THREAD* Tid;
};

struct HOBJ__ {
	int unused;
};

struct _EINFO {
	_BASEOBJECT* pobj;
	HOBJ__* hFree;
};

struct _LUID_AND_ATTRIBUTES {
	_LUID Luid;
	DWORD Attributes;
};

struct _INITIAL_PRIVILEGE_SET {
	DWORD PrivilegeCount;
	DWORD Control;
	_LUID_AND_ATTRIBUTES Privilege[3];
};

struct _OBJECT_NAME_INFORMATION {
	_UNICODE_STRING Name;
};

struct _SECURITY_QUALITY_OF_SERVICE {
	DWORD Length;
	enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
	DWORD ContextTrackingMode;
	DWORD EffectiveOnly;
};

struct _DRIVER_EXTENSION {
	_DRIVER_OBJECT* DriverObject;
	int (*AddDevice)(_DRIVER_OBJECT*, _DEVICE_OBJECT*);
	DWORD Count;
	_UNICODE_STRING ServiceKeyName;
};

struct _FAST_IO_DISPATCH {
	DWORD SizeOfFastIoDispatch;
	DWORD (*FastIoCheckIfPossible)(_FILE_OBJECT*, _LARGE_INTEGER*, DWORD, DWORD, DWORD, DWORD, _IO_STATUS_BLOCK*, _DEVICE_OBJECT*);
	DWORD (*FastIoRead)(_FILE_OBJECT*, _LARGE_INTEGER*, DWORD, DWORD, DWORD, void*, _IO_STATUS_BLOCK*, _DEVICE_OBJECT*);
	DWORD (*FastIoWrite)(_FILE_OBJECT*, _LARGE_INTEGER*, DWORD, DWORD, DWORD, void*, _IO_STATUS_BLOCK*, _DEVICE_OBJECT*);
	DWORD (*FastIoQueryBasicInfo)(_FILE_OBJECT*, DWORD, _FILE_BASIC_INFORMATION*, _IO_STATUS_BLOCK*, _DEVICE_OBJECT*);
	DWORD (*FastIoQueryStandardInfo)(_FILE_OBJECT*, DWORD, _FILE_STANDARD_INFORMATION*, _IO_STATUS_BLOCK*, _DEVICE_OBJECT*);
	DWORD (*FastIoLock)(_FILE_OBJECT*, _LARGE_INTEGER*, _LARGE_INTEGER*, _EPROCESS*, DWORD, DWORD, DWORD, _IO_STATUS_BLOCK*, _DEVICE_OBJECT*);
	DWORD (*FastIoUnlockSingle)(_FILE_OBJECT*, _LARGE_INTEGER*, _LARGE_INTEGER*, _EPROCESS*, DWORD, _IO_STATUS_BLOCK*, _DEVICE_OBJECT*);
	DWORD (*FastIoUnlockAll)(_FILE_OBJECT*, _EPROCESS*, _IO_STATUS_BLOCK*, _DEVICE_OBJECT*);
	DWORD (*FastIoUnlockAllByKey)(_FILE_OBJECT*, void*, DWORD, _IO_STATUS_BLOCK*, _DEVICE_OBJECT*);
	DWORD (*FastIoDeviceControl)(_FILE_OBJECT*, DWORD, void*, DWORD, void*, DWORD, DWORD, _IO_STATUS_BLOCK*, _DEVICE_OBJECT*);
	void (*AcquireFileForNtCreateSection)(_FILE_OBJECT*);
	void (*ReleaseFileForNtCreateSection)(_FILE_OBJECT*);
	void (*FastIoDetachDevice)(_DEVICE_OBJECT*, _DEVICE_OBJECT*);
	DWORD (*FastIoQueryNetworkOpenInfo)(_FILE_OBJECT*, DWORD, _FILE_NETWORK_OPEN_INFORMATION*, _IO_STATUS_BLOCK*, _DEVICE_OBJECT*);
	int (*AcquireForModWrite)(_FILE_OBJECT*, _LARGE_INTEGER*, _ERESOURCE**, _DEVICE_OBJECT*);
	DWORD (*MdlRead)(_FILE_OBJECT*, _LARGE_INTEGER*, DWORD, DWORD, _MDL**, _IO_STATUS_BLOCK*, _DEVICE_OBJECT*);
	DWORD (*MdlReadComplete)(_FILE_OBJECT*, _MDL*, _DEVICE_OBJECT*);
	DWORD (*PrepareMdlWrite)(_FILE_OBJECT*, _LARGE_INTEGER*, DWORD, DWORD, _MDL**, _IO_STATUS_BLOCK*, _DEVICE_OBJECT*);
	DWORD (*MdlWriteComplete)(_FILE_OBJECT*, _LARGE_INTEGER*, _MDL*, _DEVICE_OBJECT*);
	DWORD (*FastIoReadCompressed)(_FILE_OBJECT*, _LARGE_INTEGER*, DWORD, DWORD, void*, _MDL**, _IO_STATUS_BLOCK*, _COMPRESSED_DATA_INFO*, DWORD, _DEVICE_OBJECT*);
	DWORD (*FastIoWriteCompressed)(_FILE_OBJECT*, _LARGE_INTEGER*, DWORD, DWORD, void*, _MDL**, _IO_STATUS_BLOCK*, _COMPRESSED_DATA_INFO*, DWORD, _DEVICE_OBJECT*);
	DWORD (*MdlReadCompleteCompressed)(_FILE_OBJECT*, _MDL*, _DEVICE_OBJECT*);
	DWORD (*MdlWriteCompleteCompressed)(_FILE_OBJECT*, _LARGE_INTEGER*, _MDL*, _DEVICE_OBJECT*);
	DWORD (*FastIoQueryOpen)(_IRP*, _FILE_NETWORK_OPEN_INFORMATION*, _DEVICE_OBJECT*);
	int (*ReleaseForModWrite)(_FILE_OBJECT*, _ERESOURCE*, _DEVICE_OBJECT*);
	int (*AcquireForCcFlush)(_FILE_OBJECT*, _DEVICE_OBJECT*);
	int (*ReleaseForCcFlush)(_FILE_OBJECT*, _DEVICE_OBJECT*);
};

struct _DRIVER_OBJECT {
	int Type;
	int Size;
	_DEVICE_OBJECT* DeviceObject;
	DWORD Flags;
	void* DriverStart;
	DWORD DriverSize;
	void* DriverSection;
	_DRIVER_EXTENSION* DriverExtension;
	_UNICODE_STRING DriverName;
	_UNICODE_STRING* HardwareDatabase;
	_FAST_IO_DISPATCH* FastIoDispatch;
	int (*DriverInit)(_DRIVER_OBJECT*, _UNICODE_STRING*);
	void (*DriverStartIo)(_DEVICE_OBJECT*, _IRP*);
	void (*DriverUnload)(_DRIVER_OBJECT*);
	int (*)(_DEVICE_OBJECT*, _IRP*) MajorFunction[28];
};

struct HSEMAPHORE__ {
	int unused;
};

struct _DRIVER_EXTENSION {
	_DRIVER_OBJECT* DriverObject;
	int (*AddDevice)(_DRIVER_OBJECT*, _DEVICE_OBJECT*);
	DWORD Count;
	_UNICODE_STRING ServiceKeyName;
};

struct _IMAGE_DATA_DIRECTORY {
	DWORD VirtualAddress;
	DWORD Size;
};

struct _KDEVICE_QUEUE_ENTRY {
	_LIST_ENTRY DeviceListEntry;
	DWORD SortKey;
	DWORD Inserted;
};

struct _IO_STATUS_BLOCK::__unnamed {
	int Status;
	void* Pointer;
};

struct _LUID_AND_ATTRIBUTES {
	_LUID Luid;
	DWORD Attributes;
};

struct _IO_SECURITY_CONTEXT {
	_SECURITY_QUALITY_OF_SERVICE* SecurityQos;
	_ACCESS_STATE* AccessState;
	DWORD DesiredAccess;
	DWORD FullCreateOptions;
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	_IO_SECURITY_CONTEXT* SecurityContext;
	DWORD Options;
	DWORD FileAttributes;
	DWORD ShareAccess;
	DWORD EaLength;
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	DWORD Length;
	DWORD Key;
	_LARGE_INTEGER ByteOffset;
};

struct _STRING {
	DWORD Length;
	DWORD MaximumLength;
	char* Buffer;
};

enum _FILE_INFORMATION_CLASS {
	FileDirectoryInformation,
	FileFullDirectoryInformation,
	FileBothDirectoryInformation,
	FileBasicInformation,
	FileStandardInformation,
	FileInternalInformation,
	FileEaInformation,
	FileAccessInformation,
	FileNameInformation,
	FileRenameInformation,
	FileLinkInformation,
	FileNamesInformation,
	FileDispositionInformation,
	FilePositionInformation,
	FileFullEaInformation,
	FileModeInformation,
	FileAlignmentInformation,
	FileAllInformation,
	FileAllocationInformation,
	FileEndOfFileInformation,
	FileAlternateNameInformation,
	FileStreamInformation,
	FilePipeInformation,
	FilePipeLocalInformation,
	FilePipeRemoteInformation,
	FileMailslotQueryInformation,
	FileMailslotSetInformation,
	FileCompressionInformation,
	FileObjectIdInformation,
	FileCompletionInformation,
	FileMoveClusterInformation,
	FileQuotaInformation,
	FileReparsePointInformation,
	FileNetworkOpenInformation,
	FileAttributeTagInformation,
	FileTrackingInformation,
	FileIdBothDirectoryInformation,
	FileIdFullDirectoryInformation,
	FileValidDataLengthInformation,
	FileShortNameInformation,
	FileMaximumInformation,
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	DWORD Length;
	_STRING* FileName;
	enum _FILE_INFORMATION_CLASS FileInformationClass;
	DWORD FileIndex;
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	DWORD Length;
	DWORD CompletionFilter;
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	DWORD Length;
	enum _FILE_INFORMATION_CLASS FileInformationClass;
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	DWORD Length;
	enum _FILE_INFORMATION_CLASS FileInformationClass;
	_FILE_OBJECT* FileObject;
	DWORD ReplaceIfExists;
	DWORD AdvanceOnly;
	DWORD ClusterCount;
	void* DeleteHandle;
};

enum _FSINFOCLASS {
	FileFsVolumeInformation,
	FileFsLabelInformation,
	FileFsSizeInformation,
	FileFsDeviceInformation,
	FileFsAttributeInformation,
	FileFsControlInformation,
	FileFsFullSizeInformation,
	FileFsObjectIdInformation,
	FileFsDriverPathInformation,
	FileFsMaximumInformation,
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	DWORD Length;
	enum _FSINFOCLASS FsInformationClass;
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	DWORD OutputBufferLength;
	DWORD InputBufferLength;
	DWORD FsControlCode;
	void* Type3InputBuffer;
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	_LARGE_INTEGER* Length;
	DWORD Key;
	_LARGE_INTEGER ByteOffset;
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	DWORD OutputBufferLength;
	DWORD InputBufferLength;
	DWORD IoControlCode;
	void* Type3InputBuffer;
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	DWORD SecurityInformation;
	DWORD Length;
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	DWORD SecurityInformation;
	void* SecurityDescriptor;
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	_VPB* Vpb;
	_DEVICE_OBJECT* DeviceObject;
};

struct _SCSI_REQUEST_BLOCK {
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	_SCSI_REQUEST_BLOCK* Srb;
};

enum _DEVICE_RELATION_TYPE {
	BusRelations,
	EjectionRelations,
	PowerRelations,
	RemovalRelations,
	TargetDeviceRelation,
	SingleBusRelations,
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	enum _DEVICE_RELATION_TYPE Type;
};

struct _INTERFACE {
	DWORD Size;
	DWORD Version;
	void* Context;
	void (*InterfaceReference)(void*);
	void (*InterfaceDereference)(void*);
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	_GUID* InterfaceType;
	DWORD Size;
	DWORD Version;
	_INTERFACE* Interface;
	void* InterfaceSpecificData;
};

struct _DEVICE_CAPABILITIES {
	DWORD Size;
	DWORD Version;
	DWORD DeviceD1:1; 	// bit offset: 04, len=1
	DWORD DeviceD2:1; 	// bit offset: 04, len=1
	DWORD LockSupported:1; 	// bit offset: 04, len=1
	DWORD EjectSupported:1; 	// bit offset: 04, len=1
	DWORD Removable:1; 	// bit offset: 04, len=1
	DWORD DockDevice:1; 	// bit offset: 04, len=1
	DWORD UniqueID:1; 	// bit offset: 04, len=1
	DWORD SilentInstall:1; 	// bit offset: 04, len=1
	DWORD RawDeviceOK:1; 	// bit offset: 04, len=1
	DWORD SurpriseRemovalOK:1; 	// bit offset: 04, len=1
	DWORD WakeFromD0:1; 	// bit offset: 04, len=1
	DWORD WakeFromD1:1; 	// bit offset: 04, len=1
	DWORD WakeFromD2:1; 	// bit offset: 04, len=1
	DWORD WakeFromD3:1; 	// bit offset: 04, len=1
	DWORD HardwareDisabled:1; 	// bit offset: 04, len=1
	DWORD NonDynamic:1; 	// bit offset: 04, len=1
	DWORD WarmEjectSupported:1; 	// bit offset: 04, len=1
	DWORD NoDisplayInUI:1; 	// bit offset: 04, len=1
	DWORD Reserved:14; 	// bit offset: 04, len=14
	DWORD Address;
	DWORD UINumber;
	enum _DEVICE_POWER_STATE DeviceState[7];
	enum _SYSTEM_POWER_STATE SystemWake;
	enum _DEVICE_POWER_STATE DeviceWake;
	DWORD D1Latency;
	DWORD D2Latency;
	DWORD D3Latency;
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	_DEVICE_CAPABILITIES* Capabilities;
};

struct _IO_RESOURCE_REQUIREMENTS_LIST {
	DWORD ListSize;
	enum _INTERFACE_TYPE InterfaceType;
	DWORD BusNumber;
	DWORD SlotNumber;
	DWORD Reserved[3];
	DWORD AlternativeLists;
	_IO_RESOURCE_LIST List[1];
};

struct _IO_STACK_LOCATION::__unnamed::__unnamed {
	_IO_RESOURCE_REQUIREMENTS_LIST* IoResourceRequirementList;
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -