You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.1 KiB

#pragma once
#include <ntifs.h>
#include "driver_util.h"
#include "types.h"
#include "detour.hpp"
namespace hooks
{
inline void* orig_irp_ioctl = NULL;
inline void* orig_driver_unload = NULL;
inline void* last_mapped_ptr = NULL;
inline void* mapped_io_space_addr = NULL;
inline PDRIVER_OBJECT unfair_drv_obj = NULL;
void* get_addr_hook(
void* base_addr,
const char* func_name
);
void unmap_io_space(
void* base_addr,
SIZE_T size
);
void* map_io_space(
PHYSICAL_ADDRESS phys_addr,
SIZE_T size,
MEMORY_CACHING_TYPE cache_type
);
PHYSICAL_ADDRESS get_phys_addr(
void* base_addr
);
NTSTATUS create_sym_link(
PUNICODE_STRING sym_link,
PUNICODE_STRING device_name
);
NTSTATUS device_control(
PDEVICE_OBJECT device_obj,
PIRP irp
);
NTSTATUS create_device(
PDRIVER_OBJECT drv_obj,
ULONG drv_ext,
PUNICODE_STRING device_name,
DEVICE_TYPE device_type,
ULONG device_char,
BOOLEAN exclusive,
PDEVICE_OBJECT* device_obj
);
void driver_unload(
PDRIVER_OBJECT drv_obj
);
void* allocate_pool(
POOL_TYPE pool_type,
SIZE_T size
);
}