#ifndef __HOOKED_PROC_H__
#define __HOOKED_PROC_H__

#include <wdm.h>
#include "undocnt.h"

extern ZW_OPEN_PROCESS OldZwOpenProcess;
extern ZW_OPEN_THREAD OldZwOpenThread;
extern ZW_TERMINATE_PROCESS OldZwTerminateProcess;
extern ZW_LOAD_DRIVER OldZwLoadDriver;
extern ZW_OPEN_SECTION OldZwOpenSection;
extern ZW_CREATE_FILE OldZwCreateFile;
extern ZW_OPEN_FILE OldZwOpenFile;

NTSTATUS NewZwOpenProcess(PHANDLE ProcessHandle,ACCESS_MASK DesiredAccess,POBJECT_ATTRIBUTES ObjectAttributes,PCLIENT_ID ClientId);
NTSTATUS NewZwOpenThread(PHANDLE ThreadHandle,ACCESS_MASK DesiredAccess,POBJECT_ATTRIBUTES ObjectAttributes,PCLIENT_ID ClientId);
NTSTATUS NewZwTerminateProcess(HANDLE ProcessHandle,NTSTATUS ExitStatus);
NTSTATUS NewZwLoadDriver(PUNICODE_STRING DriverServiceName);
NTSTATUS NewZwOpenSection(PHANDLE SectionHandle,ACCESS_MASK DesiredAccess,POBJECT_ATTRIBUTES ObjectAttributes);
NTSTATUS NewZwCreateFile(PHANDLE FileHandle,ACCESS_MASK DesiredAccess,POBJECT_ATTRIBUTES ObjectAttributes,PIO_STATUS_BLOCK IoStatusBlock,PLARGE_INTEGER AllocationSize,ULONG FileAttributes,ULONG ShareAccess,ULONG CreateDisposition,ULONG CreateOptions,PVOID EaBuffer,ULONG EaLength);
NTSTATUS NewZwOpenFile(PHANDLE FileHandle,ACCESS_MASK DesiredAccess,POBJECT_ATTRIBUTES ObjectAttributes,PIO_STATUS_BLOCK IoStatusBlock,ULONG ShareAccess,ULONG OpenOptions);

#endif
