📄 ntapi.h
字号:
NTOSAPINTSTATUSNTAPIZwMapUserPhysicalPagesScatter( /*IN*/ PVOID *BaseAddresses, /*IN*/ PULONG NumberOfPages, /*IN*/ PULONG PageFrameNumbers);NTOSAPINTSTATUSNTAPIZwGetWriteWatch( /*IN*/ HANDLE ProcessHandle, /*IN*/ ULONG Flags, /*IN*/ PVOID BaseAddress, /*IN*/ ULONG RegionSize, /*OUT*/ PULONG Buffer, /*IN OUT*/ PULONG BufferEntries, /*OUT*/ PULONG Granularity);NTOSAPINTSTATUSNTAPIZwResetWriteWatch( /*IN*/ HANDLE ProcessHandle, /*IN*/ PVOID BaseAddress, /*IN*/ ULONG RegionSize);/* Sections */typedef enum _SECTION_INFORMATION_CLASS { SectionBasicInformation, SectionImageInformation} SECTION_INFORMATION_CLASS;NTOSAPINTSTATUSNTAPINtCreateSection( /*OUT*/ PHANDLE SectionHandle, /*IN*/ ACCESS_MASK DesiredAccess, /*IN*/ POBJECT_ATTRIBUTES ObjectAttributes, /*IN*/ PLARGE_INTEGER SectionSize /*OPTIONAL*/, /*IN*/ ULONG Protect, /*IN*/ ULONG Attributes, /*IN*/ HANDLE FileHandle);NTOSAPINTSTATUSNTAPIZwCreateSection( /*OUT*/ PHANDLE SectionHandle, /*IN*/ ACCESS_MASK DesiredAccess, /*IN*/ POBJECT_ATTRIBUTES ObjectAttributes, /*IN*/ PLARGE_INTEGER SectionSize /*OPTIONAL*/, /*IN*/ ULONG Protect, /*IN*/ ULONG Attributes, /*IN*/ HANDLE FileHandle);NTOSAPINTSTATUSNTAPIZwQuerySection( /*IN*/ HANDLE SectionHandle, /*IN*/ SECTION_INFORMATION_CLASS SectionInformationClass, /*OUT*/ PVOID SectionInformation, /*IN*/ ULONG SectionInformationLength, /*OUT*/ PULONG ResultLength /*OPTIONAL*/);NTOSAPINTSTATUSNTAPIZwExtendSection( /*IN*/ HANDLE SectionHandle, /*IN*/ PLARGE_INTEGER SectionSize);NTOSAPINTSTATUSNTAPIZwAreMappedFilesTheSame( /*IN*/ PVOID Address1, /*IN*/ PVOID Address2);/* Threads */typedef struct _USER_STACK { PVOID FixedStackBase; PVOID FixedStackLimit; PVOID ExpandableStackBase; PVOID ExpandableStackLimit; PVOID ExpandableStackBottom;} USER_STACK, *PUSER_STACK;NTOSAPINTSTATUSNTAPIZwCreateThread( /*OUT*/ PHANDLE ThreadHandle, /*IN*/ ACCESS_MASK DesiredAccess, /*IN*/ POBJECT_ATTRIBUTES ObjectAttributes, /*IN*/ HANDLE ProcessHandle, /*OUT*/ PCLIENT_ID ClientId, /*IN*/ PCONTEXT ThreadContext, /*IN*/ PUSER_STACK UserStack, /*IN*/ BOOLEAN CreateSuspended);NTOSAPINTSTATUSNTAPINtOpenThread( /*OUT*/ PHANDLE ThreadHandle, /*IN*/ ACCESS_MASK DesiredAccess, /*IN*/ POBJECT_ATTRIBUTES ObjectAttributes, /*IN*/ PCLIENT_ID ClientId);NTOSAPINTSTATUSNTAPIZwOpenThread( /*OUT*/ PHANDLE ThreadHandle, /*IN*/ ACCESS_MASK DesiredAccess, /*IN*/ POBJECT_ATTRIBUTES ObjectAttributes, /*IN*/ PCLIENT_ID ClientId);NTOSAPINTSTATUSNTAPIZwTerminateThread( /*IN*/ HANDLE ThreadHandle /*OPTIONAL*/, /*IN*/ NTSTATUS ExitStatus);NTOSAPINTSTATUSNTAPINtQueryInformationThread( /*IN*/ HANDLE ThreadHandle, /*IN*/ THREADINFOCLASS ThreadInformationClass, /*OUT*/ PVOID ThreadInformation, /*IN*/ ULONG ThreadInformationLength, /*OUT*/ PULONG ReturnLength /*OPTIONAL*/);NTOSAPINTSTATUSNTAPIZwQueryInformationThread( /*IN*/ HANDLE ThreadHandle, /*IN*/ THREADINFOCLASS ThreadInformationClass, /*OUT*/ PVOID ThreadInformation, /*IN*/ ULONG ThreadInformationLength, /*OUT*/ PULONG ReturnLength /*OPTIONAL*/);NTOSAPINTSTATUSNTAPINtSetInformationThread( /*IN*/ HANDLE ThreadHandle, /*IN*/ THREADINFOCLASS ThreadInformationClass, /*IN*/ PVOID ThreadInformation, /*IN*/ ULONG ThreadInformationLength);typedef struct _THREAD_BASIC_INFORMATION { NTSTATUS ExitStatus; PNT_TIB TebBaseAddress; CLIENT_ID ClientId; KAFFINITY AffinityMask; KPRIORITY Priority; KPRIORITY BasePriority;} THREAD_BASIC_INFORMATION, *PTHREAD_BASIC_INFORMATION;typedef struct _KERNEL_USER_TIMES { LARGE_INTEGER CreateTime; LARGE_INTEGER ExitTime; LARGE_INTEGER KernelTime; LARGE_INTEGER UserTime;} KERNEL_USER_TIMES, *PKERNEL_USER_TIMES;NTOSAPINTSTATUSNTAPIZwSuspendThread( /*IN*/ HANDLE ThreadHandle, /*OUT*/ PULONG PreviousSuspendCount /*OPTIONAL*/);NTOSAPINTSTATUSNTAPIZwResumeThread( /*IN*/ HANDLE ThreadHandle, /*OUT*/ PULONG PreviousSuspendCount /*OPTIONAL*/);NTOSAPINTSTATUSNTAPIZwGetContextThread( /*IN*/ HANDLE ThreadHandle, /*OUT*/ PCONTEXT Context);NTOSAPINTSTATUSNTAPIZwSetContextThread( /*IN*/ HANDLE ThreadHandle, /*IN*/ PCONTEXT Context);NTOSAPINTSTATUSNTAPIZwQueueApcThread( /*IN*/ HANDLE ThreadHandle, /*IN*/ PKNORMAL_ROUTINE ApcRoutine, /*IN*/ PVOID ApcContext /*OPTIONAL*/, /*IN*/ PVOID Argument1 /*OPTIONAL*/, /*IN*/ PVOID Argument2 /*OPTIONAL*/);NTOSAPINTSTATUSNTAPIZwTestAlert( VOID);NTOSAPINTSTATUSNTAPIZwAlertThread( /*IN*/ HANDLE ThreadHandle);NTOSAPINTSTATUSNTAPIZwAlertResumeThread( /*IN*/ HANDLE ThreadHandle, /*OUT*/ PULONG PreviousSuspendCount /*OPTIONAL*/);NTOSAPINTSTATUSNTAPIZwRegisterThreadTerminatePort( /*IN*/ HANDLE PortHandle);NTOSAPINTSTATUSNTAPIZwImpersonateThread( /*IN*/ HANDLE ThreadHandle, /*IN*/ HANDLE TargetThreadHandle, /*IN*/ PSECURITY_QUALITY_OF_SERVICE SecurityQos);NTOSAPINTSTATUSNTAPIZwImpersonateAnonymousToken( /*IN*/ HANDLE ThreadHandle);/* Processes */NTOSAPINTSTATUSNTAPIZwCreateProcess( /*OUT*/ PHANDLE ProcessHandle, /*IN*/ ACCESS_MASK DesiredAccess, /*IN*/ POBJECT_ATTRIBUTES ObjectAttributes, /*IN*/ HANDLE InheritFromProcessHandle, /*IN*/ BOOLEAN InheritHandles, /*IN*/ HANDLE SectionHandle /*OPTIONAL*/, /*IN*/ HANDLE DebugPort /*OPTIONAL*/, /*IN*/ HANDLE ExceptionPort /*OPTIONAL*/);NTOSAPINTSTATUSNTAPIZwCreateProcess( /*OUT*/ PHANDLE ProcessHandle, /*IN*/ ACCESS_MASK DesiredAccess, /*IN*/ POBJECT_ATTRIBUTES ObjectAttributes, /*IN*/ HANDLE InheritFromProcessHandle, /*IN*/ BOOLEAN InheritHandles, /*IN*/ HANDLE SectionHandle /*OPTIONAL*/, /*IN*/ HANDLE DebugPort /*OPTIONAL*/, /*IN*/ HANDLE ExceptionPort /*OPTIONAL*/);NTOSAPINTSTATUSNTAPIZwTerminateProcess( /*IN*/ HANDLE ProcessHandle /*OPTIONAL*/, /*IN*/ NTSTATUS ExitStatus);NTOSAPINTSTATUSNTAPIZwQueryInformationProcess( /*IN*/ HANDLE ProcessHandle, /*IN*/ PROCESSINFOCLASS ProcessInformationClass, /*OUT*/ PVOID ProcessInformation, /*IN*/ ULONG ProcessInformationLength, /*OUT*/ PULONG ReturnLength /*OPTIONAL*/);NTOSAPINTSTATUSNTAPINtSetInformationProcess( /*IN*/ HANDLE ProcessHandle, /*IN*/ PROCESSINFOCLASS ProcessInformationClass, /*IN*/ PVOID ProcessInformation, /*IN*/ ULONG ProcessInformationLength);NTOSAPINTSTATUSNTAPIZwSetInformationProcess( /*IN*/ HANDLE ProcessHandle, /*IN*/ PROCESSINFOCLASS ProcessInformationClass, /*IN*/ PVOID ProcessInformation, /*IN*/ ULONG ProcessInformationLength);typedef struct _PROCESS_BASIC_INFORMATION { NTSTATUS ExitStatus; PPEB PebBaseAddress; KAFFINITY AffinityMask; KPRIORITY BasePriority; ULONG UniqueProcessId; ULONG InheritedFromUniqueProcessId;} PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION;typedef struct _PROCESS_ACCESS_TOKEN { HANDLE Token; HANDLE Thread;} PROCESS_ACCESS_TOKEN, *PPROCESS_ACCESS_TOKEN;/* DefaultHardErrorMode constants *//* also in winbase.h */#define SEM_FAILCRITICALERRORS 0x0001#define SEM_NOGPFAULTERRORBOX 0x0002#define SEM_NOALIGNMENTFAULTEXCEPT 0x0004#define SEM_NOOPENFILEERRORBOX 0x8000/* end winbase.h */typedef struct _POOLED_USAGE_AND_LIMITS { ULONG PeakPagedPoolUsage; ULONG PagedPoolUsage; ULONG PagedPoolLimit; ULONG PeakNonPagedPoolUsage; ULONG NonPagedPoolUsage; ULONG NonPagedPoolLimit; ULONG PeakPagefileUsage; ULONG PagefileUsage; ULONG PagefileLimit;} POOLED_USAGE_AND_LIMITS, *PPOOLED_USAGE_AND_LIMITS;typedef struct _PROCESS_WS_WATCH_INFORMATION { PVOID FaultingPc; PVOID FaultingVa;} PROCESS_WS_WATCH_INFORMATION, *PPROCESS_WS_WATCH_INFORMATION;/* PROCESS_PRIORITY_CLASS.PriorityClass constants */#define PC_IDLE 1#define PC_NORMAL 2#define PC_HIGH 3#define PC_REALTIME 4#define PC_BELOW_NORMAL 5#define PC_ABOVE_NORMAL 6typedef struct _PROCESS_PRIORITY_CLASS { BOOLEAN Foreground; UCHAR PriorityClass;} PROCESS_PRIORITY_CLASS, *PPROCESS_PRIORITY_CLASS;/* PROCESS_DEVICEMAP_INFORMATION.DriveType constants */#define DRIVE_UNKNOWN 0#define DRIVE_NO_ROOT_DIR 1#define DRIVE_REMOVABLE 2#define DRIVE_FIXED 3#define DRIVE_REMOTE 4#define DRIVE_CDROM 5#define DRIVE_RAMDISK 6typedef struct _PROCESS_DEVICEMAP_INFORMATION { _ANONYMOUS_UNION union { struct { HANDLE DirectoryHandle; } Set; struct { ULONG DriveMap; UCHAR DriveType[32]; } Query; } DUMMYUNIONNAME;} PROCESS_DEVICEMAP_INFORMATION, *PPROCESS_DEVICEMAP_INFORMATION;typedef struct _PROCESS_SESSION_INFORMATION { ULONG SessionId;} PROCESS_SESSION_INFORMATION, *PPROCESS_SESSION_INFORMATION;typedef struct _RTL_USER_PROCESS_PARAMETERS { ULONG AllocationSize; ULONG Size; ULONG Flags; ULONG DebugFlags; HANDLE hConsole; ULONG ProcessGroup; HANDLE hStdInput; HANDLE hStdOutput; HANDLE hStdError; UNICODE_STRING CurrentDirectoryName; HANDLE CurrentDirectoryHandle; UNICODE_STRING DllPath; UNICODE_STRING ImagePathName; UNICODE_STRING CommandLine; PWSTR Environment; ULONG dwX; ULONG dwY; ULONG dwXSize; ULONG dwYSize; ULONG dwXCountChars; ULONG dwYCountChars; ULONG dwFillAttribute; ULONG dwFlags; ULONG wShowWindow; UNICODE_STRING WindowTitle; UNICODE_STRING DesktopInfo; UNICODE_STRING ShellInfo; UNICODE_STRING RuntimeInfo;} RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS;NTSTATUSNTAPIRtlCreateProcessParameters( /*OUT*/ PRTL_USER_PROCESS_PARAMETERS *ProcessParameters, /*IN*/ PUNICODE_STRING ImageFile, /*IN*/ PUNICODE_STRING DllPath /*OPTIONAL*/, /*IN*/ PUNICODE_STRING CurrentDirectory /*OPTIONAL*/, /*IN*/ PUNICODE_STRING CommandLine /*OPTIONAL*/, /*IN*/ PWSTR Environment /*OPTIONAL*/, /*IN*/ PUNICODE_STRING WindowTitle /*OPTIONAL*/, /*IN*/ PUNICODE_STRING DesktopInfo /*OPTIONAL*/, /*IN*/ PUNICODE_STRING ShellInfo /*OPTIONAL*/, /*IN*/ PUNICODE_STRING RuntimeInfo /*OPTIONAL*/);NTSTATUSNTAPIRtlDestroyProcessParameters( /*IN*/ PRTL_USER_PROCESS_PARAMETERS ProcessParameters);typedef struct _DEBUG_BUFFER { HANDLE SectionHandle; PVOID SectionBase; PVOID RemoteSectionBase; ULONG SectionBaseDelta; HANDLE EventPairHandle; ULONG Unknown[2]; HANDLE RemoteThreadHandle; ULONG InfoClassMask; ULONG SizeOfInfo; ULONG AllocatedSize; ULONG SectionSize; PVOID ModuleInformation; PVOID BackTraceInformation; PVOID HeapInformation; PVOID LockInformation; PVOID Reserved[8];} DEBUG_BUFFER, *PDEBUG_BUFFER;PDEBUG_BUFFERNTAPIRtlCreateQueryDebugBuffer( /*IN*/ ULONG Size, /*IN*/ BOOLEAN EventPair);/* RtlQueryProcessDebugInformation.DebugInfoClassMask constants */#define PDI_MODULES 0x01#define PDI_BACKTRACE 0x02#define PDI_HEAPS 0x04#define PDI_HEAP_TAGS 0x08#define PDI_HEAP_BLOCKS 0x10#define PDI_LOCKS 0x20NTSTATUSNTAPIRtlQueryProcessDebugInformation( /*IN*/ ULONG ProcessId, /*IN*/ ULONG DebugInfoClassMask, /*IN OUT*/ PDEBUG_BUFFER DebugBuffer);NTSTATUSNTAPIRtlDestroyQueryDebugBuffer( /*IN*/ PDEBUG_BUFFER DebugBuffer);/* DEBUG_MODULE_INFORMATION.Flags constants */#define LDRP_STATIC_LINK 0x00000002#define LDRP_IMAGE_DLL 0x00000004#define LDRP_LOAD_IN_PROGRESS 0x00001000#define LDRP_UNLOAD_IN_PROGRESS 0x00002000#define LDRP_ENTRY_PROCESSED 0x00004000#define LDRP_ENTRY_INSERTED 0x00008000#define LDRP_CURRENT_LOAD 0x00010000#define LDRP_FAILED_BUILTIN_LOAD 0x00020000#define LDRP_DONT_CALL_FOR_THREADS 0x00040000#define LDRP_PROCESS_ATTACH_CALLED 0x00080000#define LDRP_DEBUG_SYMBOLS_LOADED 0x00100000#define LDRP_IMAGE_NOT_AT_BASE 0x00200000#define LDRP_WX86_IGNORE_MACHINETYPE 0x00400000typedef struct _DEBUG_MODULE_INFORMATION { ULONG Reserved[2]; ULONG Base; ULONG Size; ULONG Flags; USHORT Index; USHORT Unknown; USHORT LoadCount; USHORT ModuleNameOffset; CHAR ImageName[256];} DEBUG_MODULE_INFORMATION, *PDEBUG_MODULE_INFORMATION;typedef struct _DEBUG_HEAP_INFORMATION { ULONG Base; ULONG Flags; USHORT Granularity; USHORT Unknown; ULONG Allocated; ULONG Committed; ULONG TagCount; ULONG BlockCount; ULONG Reserved[7]; PVOID Tags; PVOID Blocks;} DEBUG_HEAP_INFORMATION, *PDEBUG_HEAP_INFORMATION;typedef struct _DEBUG_LOCK_INFORMATION { PVOID Address; USHORT Type; USHORT CreatorBackTraceIndex; ULONG OwnerThreadId; ULONG ActiveCount; ULONG ContentionCount;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -