mirror-ac/driver/driver.h

61 lines
1.2 KiB
C
Raw Normal View History

2023-08-17 10:45:50 +02:00
#ifndef DRIVER_H
#define DRIVER_H
#include <ntifs.h>
#include <wdftypes.h>
#include <wdf.h>
2023-09-01 14:30:32 +02:00
/*
* This structure is strictly for driver related stuff
* that should only be written at driver entry.
*
* Note that the lock isnt really needed here but Im using one
* just in case c:
*/
2023-08-24 15:12:49 +02:00
typedef struct _DRIVER_CONFIG
{
2023-09-01 13:46:31 +02:00
CHAR driver_name[ 128 ];
2023-09-01 14:30:32 +02:00
UNICODE_STRING device_name;
UNICODE_STRING device_symbolic_link;
2023-09-01 13:46:31 +02:00
UNICODE_STRING driver_path;
2023-09-01 14:30:32 +02:00
UNICODE_STRING registry_path;
2023-08-24 15:12:49 +02:00
KGUARDED_MUTEX lock;
}DRIVER_CONFIG, *PDRIVER_CONFIG;
2023-09-01 14:30:32 +02:00
/*
* This structure can change at anytime based on whether
* the target process to protect is open / closed / changes etc.
*/
typedef struct _PROCESS_CONFIG
{
BOOLEAN initialised;
LONG protected_process_id;
PEPROCESS protected_process_eprocess;
KGUARDED_MUTEX lock;
}PROCESS_CONFIG, *PPROCESS_CONFIG;
2023-08-24 15:12:49 +02:00
NTSTATUS InitialiseDriverConfigOnProcessLaunch(
_In_ PIRP Irp
2023-08-20 16:12:04 +02:00
);
2023-08-24 15:12:49 +02:00
VOID GetProtectedProcessEProcess(
2023-08-30 15:23:04 +02:00
_Out_ PEPROCESS* Process
2023-08-20 16:12:04 +02:00
);
2023-08-24 15:12:49 +02:00
VOID GetProtectedProcessId(
2023-08-24 17:10:40 +02:00
_Out_ PLONG ProcessId
);
2023-09-01 14:30:32 +02:00
VOID ReadProcessInitialisedConfigFlag(
2023-08-24 17:10:40 +02:00
_Out_ PBOOLEAN Flag
2023-08-20 16:12:04 +02:00
);
2023-08-24 15:12:49 +02:00
2023-09-01 13:46:31 +02:00
VOID TerminateProtectedProcessOnViolation();
2023-09-01 14:30:32 +02:00
VOID ClearProcessConfigOnProcessTermination();
2023-09-01 13:46:31 +02:00
2023-08-17 10:45:50 +02:00
#endif