📄 win32k.h
字号:
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 + -