Files
mirror-processhacker/trunk/NProcessHacker/nativedefs.h
T
wj32 5808bbcfc6 * added transparency hooking to NProcessHacker
* added some registry-related things to ProcessHacker.Native

git-svn-id: svn://svn.code.sf.net/p/processhacker/code@1379 21ef857c-d57f-4fe0-8362-d861dc6d29cd
2009-06-06 09:50:14 +00:00

150 lines
3.3 KiB
C

#ifndef _NATIVEDEFS_H
#define _NATIVEDEFS_H
#include "nph.h"
typedef struct _UNICODE_STRING UNICODE_STRING, *PUNICODE_STRING;
typedef struct _CLIENT_ID
{
HANDLE UniqueProcess;
HANDLE UniqueThread;
} CLIENT_ID, *PCLIENT_ID;
typedef struct _IO_STATUS_BLOCK
{
union
{
NTSTATUS Status;
PVOID Pointer;
};
ULONG_PTR Information;
} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
typedef struct _OBJECT_ATTRIBUTES
{
ULONG Length;
PVOID RootDirectory;
PUNICODE_STRING ObjectName;
ULONG Attributes;
PVOID SecurityDescriptor;
PVOID SecurityQualityOfService;
} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
typedef struct _UNICODE_STRING
{
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;
#define NTDEVICEIOCONTROLFILE_ARGS \
HANDLE FileHandle, \
HANDLE Event, \
PVOID ApcRoutine, \
PVOID ApcContext, \
PIO_STATUS_BLOCK IoStatusBlock, \
ULONG IoControlCode, \
PVOID InputBuffer, \
ULONG InputBufferLength, \
PVOID OutputBuffer, \
ULONG OutputBufferLength
typedef NTSTATUS (NTAPI *_NtDeviceIoControlFile)(
NTDEVICEIOCONTROLFILE_ARGS
);
#define NTGETCONTEXTTHREAD_ARGS \
HANDLE ThreadHandle, \
PCONTEXT Context
typedef NTSTATUS (NTAPI *_NtGetContextThread)(
NTGETCONTEXTTHREAD_ARGS
);
#define NTOPENPROCESS_ARGS \
PHANDLE ProcessHandle, \
ACCESS_MASK DesiredAccess, \
POBJECT_ATTRIBUTES ObjectAttributes, \
PCLIENT_ID ClientId
typedef NTSTATUS (NTAPI *_NtOpenProcess)(
NTOPENPROCESS_ARGS
);
#define NTOPENPROCESSTOKEN_ARGS \
HANDLE ProcessHandle, \
ACCESS_MASK DesiredAccess, \
PHANDLE TokenHandle
typedef NTSTATUS (NTAPI *_NtOpenProcessToken)(
NTOPENPROCESSTOKEN_ARGS
);
#define NTOPENPROCESSTOKENEX_ARGS \
HANDLE ProcessHandle, \
ACCESS_MASK DesiredAccess, \
ULONG HandleAttributes, \
PHANDLE TokenHandle
typedef NTSTATUS (NTAPI *_NtOpenProcessTokenEx)(
NTOPENPROCESSTOKENEX_ARGS
);
#define NTOPENTHREAD_ARGS \
PHANDLE ThreadHandle, \
ACCESS_MASK DesiredAccess, \
POBJECT_ATTRIBUTES ObjectAttributes, \
PCLIENT_ID ClientId
typedef NTSTATUS (NTAPI *_NtOpenThread)(
NTOPENTHREAD_ARGS
);
#define NTREADVIRTUALMEMORY_ARGS \
HANDLE ProcessHandle, \
PVOID BaseAddress, \
PVOID Buffer, \
ULONG BufferLength, \
PULONG ReturnLength
typedef NTSTATUS (NTAPI *_NtReadVirtualMemory)(
NTREADVIRTUALMEMORY_ARGS
);
#define NTSETCONTEXTTHREAD_ARGS \
HANDLE ThreadHandle, \
PCONTEXT Context
typedef NTSTATUS (NTAPI *_NtSetContextThread)(
NTSETCONTEXTTHREAD_ARGS
);
#define NTTERMINATEPROCESS_ARGS \
HANDLE ProcessHandle, \
NTSTATUS ExitStatus
typedef NTSTATUS (NTAPI *_NtTerminateProcess)(
NTTERMINATEPROCESS_ARGS
);
#define NTTERMINATETHREAD_ARGS \
HANDLE ThreadHandle, \
NTSTATUS ExitStatus
typedef NTSTATUS (NTAPI *_NtTerminateThread)(
NTTERMINATETHREAD_ARGS
);
#define NTWRITEVIRTUALMEMORY_ARGS \
HANDLE ProcessHandle, \
PVOID BaseAddress, \
PVOID Buffer, \
ULONG BufferLength, \
PULONG ReturnLength
typedef NTSTATUS (NTAPI *_NtWriteVirtualMemory)(
NTWRITEVIRTUALMEMORY_ARGS
);
#endif