www.pudn.com > hookN.zip > drvcomm.h


#ifndef __DRVCOMM_H__ 
#define __DRVCOMM_H__ 
 
//device names 
#define DEVICE_NAME             L"\\Device\\hook5" 
#define DOS_DEVICE_NAME         L"\\DosDevices\\hook5" 
 
 
//IO control codes 
//HOOK_START initiates hooks 
#define IOCTL_HOOK_START        CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_READ_DATA | FILE_WRITE_DATA) 
//HOOK_STOP unhooks hooked functions 
#define IOCTL_HOOK_STOP         CTL_CODE(FILE_DEVICE_UNKNOWN,0x801,METHOD_BUFFERED,FILE_READ_DATA | FILE_WRITE_DATA) 
//PROTECT_PROCESS adds/removes Process protection  
#define IOCTL_PROTECT_PROCESS   CTL_CODE(FILE_DEVICE_UNKNOWN,0x880,METHOD_BUFFERED,FILE_READ_DATA | FILE_WRITE_DATA) 
 
//driver/app communication buffers 
typedef struct DRVCOMM_REQUEST_BUFFER 
{ 
  union 
  { 
    struct 
    { 
      ULONG SDT_index_ZwQueryInformationThread;   //SDT index of ZwQueryInformationThread 
    } init; 
 
    struct 
    { 
      ULONG pid;                                  //pid of process to protect/disable protection for 
      int enable;                                 //protect on true, disable protection otherwise 
    } protect_process; 
  } parameters; 
} DRVCOMM_REQUEST_BUFFER,*PDRVCOMM_REQUEST_BUFFER; 
 
typedef struct DRVCOMM_RESPONSE_BUFFER 
{ 
  ULONG status; 
} DRVCOMM_RESPONSE_BUFFER,*PDRVCOMM_RESPONSE_BUFFER; 
 
#endif