Files
2026-06-29 09:10:15 +08:00

46 lines
967 B
C++

#include "comm_dispatch.h"
#include "protect_filter.h"
#include "anit_screen_grap.h"
namespace comm_dispatch
{
auto dispatch(CMD_COMM* data) -> NTSTATUS
{
auto status = STATUS_UNSUCCESSFUL;
switch (data->CommID)
{
case CMD::DRIVER_COMM_TEST:
{
status = STATUS_SUCCESS;
break;
}
case CMD::DRIVER_PROTECT_PROCESS:
{
auto process_data = (IOCTL_PROCESS*)data->Buf;
status = protect_filter::add_protect_list((ULONG)process_data->Pid, NULL, FALSE);
break;
}
case CMD::ADD_WHITE_PROCESS:
{
auto process_data = (IOCTL_PROCESS*)data->Buf;
status = protect_filter::add_protect_list((ULONG)process_data->Pid, NULL, TRUE);
break;
}
case CMD::WINDOW_ANIT_SCREEN:
{
auto window_data = (IOCTL_WINDOW*)data->Buf;
status = anit_screen_grap::GreProtectSpriteContent(
(HWND)window_data->HWND, (UINT)window_data->Flags);
break;
}
default:
break;
}
*(NTSTATUS*)data->status = status;
return status;
}
}