WDK Mini Filter Example
minispy.h File Reference

Go to the source code of this file.

Data Structures

struct  _MINISPYVER
 
struct  _RECORD_DATA
 
struct  _LOG_RECORD
 
struct  _RECORD_LIST
 
struct  _COMMAND_MESSAGE
 

Macros

#define IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION   ((UCHAR)-1)
 
#define IRP_MJ_RELEASE_FOR_SECTION_SYNCHRONIZATION   ((UCHAR)-2)
 
#define IRP_MJ_ACQUIRE_FOR_MOD_WRITE   ((UCHAR)-3)
 
#define IRP_MJ_RELEASE_FOR_MOD_WRITE   ((UCHAR)-4)
 
#define IRP_MJ_ACQUIRE_FOR_CC_FLUSH   ((UCHAR)-5)
 
#define IRP_MJ_RELEASE_FOR_CC_FLUSH   ((UCHAR)-6)
 
#define IRP_MJ_NOTIFY_STREAM_FO_CREATION   ((UCHAR)-7)
 
#define IRP_MJ_FAST_IO_CHECK_IF_POSSIBLE   ((UCHAR)-13)
 
#define IRP_MJ_NETWORK_QUERY_OPEN   ((UCHAR)-14)
 
#define IRP_MJ_MDL_READ   ((UCHAR)-15)
 
#define IRP_MJ_MDL_READ_COMPLETE   ((UCHAR)-16)
 
#define IRP_MJ_PREPARE_MDL_WRITE   ((UCHAR)-17)
 
#define IRP_MJ_MDL_WRITE_COMPLETE   ((UCHAR)-18)
 
#define IRP_MJ_VOLUME_MOUNT   ((UCHAR)-19)
 
#define IRP_MJ_VOLUME_DISMOUNT   ((UCHAR)-20)
 
#define IRP_MJ_TRANSACTION_NOTIFY   ((UCHAR)-40)
 
#define MINISPY_MAJ_VERSION   2
 
#define MINISPY_MIN_VERSION   0
 
#define MINISPY_PORT_NAME   L"\\MiniSpyPort"
 
#define RECORD_SIZE   1024
 
#define RECORD_TYPE_NORMAL   0x00000000
 
#define RECORD_TYPE_FILETAG   0x00000004
 
#define RECORD_TYPE_FLAG_STATIC   0x80000000
 
#define RECORD_TYPE_FLAG_EXCEED_MEMORY_ALLOWANCE   0x20000000
 
#define RECORD_TYPE_FLAG_OUT_OF_MEMORY   0x10000000
 
#define RECORD_TYPE_FLAG_MASK   0xffff0000
 
#define MAX_NAME_SPACE   ROUND_TO_SIZE( (RECORD_SIZE - sizeof(RECORD_LIST)), sizeof( PVOID ))
 
#define MAX_NAME_SPACE_LESS_NULL   (MAX_NAME_SPACE - sizeof(UNICODE_NULL))
 
#define MAX_NAME_WCHARS_LESS_NULL   MAX_NAME_SPACE_LESS_NULL / sizeof(WCHAR)
 
#define REMAINING_NAME_SPACE(LogRecord)
 
#define MAX_LOG_RECORD_LENGTH   (RECORD_SIZE - FIELD_OFFSET( RECORD_LIST, LogRecord ))
 
#define Add2Ptr(P, I)   ((PVOID)((PUCHAR)(P) + (I)))
 
#define ROUND_TO_SIZE(_length, _alignment)   (((_length) + ((_alignment)-1)) & ~((_alignment) - 1))
 
#define FlagOn(_F, _SF)   ((_F) & (_SF))
 

Typedefs

typedef struct _MINISPYVER MINISPYVER
 
typedef struct _MINISPYVERPMINISPYVER
 
typedef ULONG_PTR FILE_ID
 
typedef struct _RECORD_DATA RECORD_DATA
 
typedef struct _RECORD_DATAPRECORD_DATA
 
typedef struct _LOG_RECORD LOG_RECORD
 
typedef struct _LOG_RECORDPLOG_RECORD
 
typedef struct _RECORD_LIST RECORD_LIST
 
typedef struct _RECORD_LISTPRECORD_LIST
 
typedef enum _MINISPY_COMMAND MINISPY_COMMAND
 
typedef struct _COMMAND_MESSAGE COMMAND_MESSAGE
 
typedef struct _COMMAND_MESSAGEPCOMMAND_MESSAGE
 

Enumerations

enum  _MINISPY_COMMAND { GetMiniSpyLog, GetMiniSpyVersion }
 

Functions

typedef _Return_type_success_ (return >=0) LONG NTSTATUS
 

Macro Definition Documentation

◆ Add2Ptr

#define Add2Ptr (   P,
 
)    ((PVOID)((PUCHAR)(P) + (I)))

Definition at line 238 of file minispy.h.

◆ FlagOn

#define FlagOn (   _F,
  _SF 
)    ((_F) & (_SF))

Definition at line 247 of file minispy.h.

◆ IRP_MJ_ACQUIRE_FOR_CC_FLUSH

#define IRP_MJ_ACQUIRE_FOR_CC_FLUSH   ((UCHAR)-5)

Definition at line 32 of file minispy.h.

◆ IRP_MJ_ACQUIRE_FOR_MOD_WRITE

#define IRP_MJ_ACQUIRE_FOR_MOD_WRITE   ((UCHAR)-3)

Definition at line 30 of file minispy.h.

◆ IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION

#define IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION   ((UCHAR)-1)

Definition at line 28 of file minispy.h.

◆ IRP_MJ_FAST_IO_CHECK_IF_POSSIBLE

#define IRP_MJ_FAST_IO_CHECK_IF_POSSIBLE   ((UCHAR)-13)

Definition at line 36 of file minispy.h.

◆ IRP_MJ_MDL_READ

#define IRP_MJ_MDL_READ   ((UCHAR)-15)

Definition at line 38 of file minispy.h.

◆ IRP_MJ_MDL_READ_COMPLETE

#define IRP_MJ_MDL_READ_COMPLETE   ((UCHAR)-16)

Definition at line 39 of file minispy.h.

◆ IRP_MJ_MDL_WRITE_COMPLETE

#define IRP_MJ_MDL_WRITE_COMPLETE   ((UCHAR)-18)

Definition at line 41 of file minispy.h.

◆ IRP_MJ_NETWORK_QUERY_OPEN

#define IRP_MJ_NETWORK_QUERY_OPEN   ((UCHAR)-14)

Definition at line 37 of file minispy.h.

◆ IRP_MJ_NOTIFY_STREAM_FO_CREATION

#define IRP_MJ_NOTIFY_STREAM_FO_CREATION   ((UCHAR)-7)

Definition at line 34 of file minispy.h.

◆ IRP_MJ_PREPARE_MDL_WRITE

#define IRP_MJ_PREPARE_MDL_WRITE   ((UCHAR)-17)

Definition at line 40 of file minispy.h.

◆ IRP_MJ_RELEASE_FOR_CC_FLUSH

#define IRP_MJ_RELEASE_FOR_CC_FLUSH   ((UCHAR)-6)

Definition at line 33 of file minispy.h.

◆ IRP_MJ_RELEASE_FOR_MOD_WRITE

#define IRP_MJ_RELEASE_FOR_MOD_WRITE   ((UCHAR)-4)

Definition at line 31 of file minispy.h.

◆ IRP_MJ_RELEASE_FOR_SECTION_SYNCHRONIZATION

#define IRP_MJ_RELEASE_FOR_SECTION_SYNCHRONIZATION   ((UCHAR)-2)

Definition at line 29 of file minispy.h.

◆ IRP_MJ_TRANSACTION_NOTIFY

#define IRP_MJ_TRANSACTION_NOTIFY   ((UCHAR)-40)

Definition at line 49 of file minispy.h.

◆ IRP_MJ_VOLUME_DISMOUNT

#define IRP_MJ_VOLUME_DISMOUNT   ((UCHAR)-20)

Definition at line 43 of file minispy.h.

◆ IRP_MJ_VOLUME_MOUNT

#define IRP_MJ_VOLUME_MOUNT   ((UCHAR)-19)

Definition at line 42 of file minispy.h.

◆ MAX_LOG_RECORD_LENGTH

#define MAX_LOG_RECORD_LENGTH   (RECORD_SIZE - FIELD_OFFSET( RECORD_LIST, LogRecord ))

Definition at line 230 of file minispy.h.

◆ MAX_NAME_SPACE

#define MAX_NAME_SPACE   ROUND_TO_SIZE( (RECORD_SIZE - sizeof(RECORD_LIST)), sizeof( PVOID ))

Definition at line 210 of file minispy.h.

◆ MAX_NAME_SPACE_LESS_NULL

#define MAX_NAME_SPACE_LESS_NULL   (MAX_NAME_SPACE - sizeof(UNICODE_NULL))

Definition at line 217 of file minispy.h.

◆ MAX_NAME_WCHARS_LESS_NULL

#define MAX_NAME_WCHARS_LESS_NULL   MAX_NAME_SPACE_LESS_NULL / sizeof(WCHAR)

Definition at line 218 of file minispy.h.

◆ MINISPY_MAJ_VERSION

#define MINISPY_MAJ_VERSION   2

Definition at line 56 of file minispy.h.

◆ MINISPY_MIN_VERSION

#define MINISPY_MIN_VERSION   0

Definition at line 57 of file minispy.h.

◆ MINISPY_PORT_NAME

#define MINISPY_PORT_NAME   L"\\MiniSpyPort"

Definition at line 70 of file minispy.h.

◆ RECORD_SIZE

#define RECORD_SIZE   1024

Definition at line 83 of file minispy.h.

◆ RECORD_TYPE_FILETAG

#define RECORD_TYPE_FILETAG   0x00000004

Definition at line 90 of file minispy.h.

◆ RECORD_TYPE_FLAG_EXCEED_MEMORY_ALLOWANCE

#define RECORD_TYPE_FLAG_EXCEED_MEMORY_ALLOWANCE   0x20000000

Definition at line 93 of file minispy.h.

◆ RECORD_TYPE_FLAG_MASK

#define RECORD_TYPE_FLAG_MASK   0xffff0000

Definition at line 95 of file minispy.h.

◆ RECORD_TYPE_FLAG_OUT_OF_MEMORY

#define RECORD_TYPE_FLAG_OUT_OF_MEMORY   0x10000000

Definition at line 94 of file minispy.h.

◆ RECORD_TYPE_FLAG_STATIC

#define RECORD_TYPE_FLAG_STATIC   0x80000000

Definition at line 92 of file minispy.h.

◆ RECORD_TYPE_NORMAL

#define RECORD_TYPE_NORMAL   0x00000000

Definition at line 89 of file minispy.h.

◆ REMAINING_NAME_SPACE

#define REMAINING_NAME_SPACE (   LogRecord)
Value:
(FLT_ASSERT((LogRecord)->Length >= sizeof(LOG_RECORD)), \
(USHORT)(MAX_NAME_SPACE - ((LogRecord)->Length - sizeof(LOG_RECORD))))
_In_ PLARGE_INTEGER _In_ ULONG Length
FLT_ASSERT(IS_MY_CONTROL_DEVICE_OBJECT(DeviceObject))
#define MAX_NAME_SPACE
Definition: minispy.h:210

Definition at line 226 of file minispy.h.

◆ ROUND_TO_SIZE

#define ROUND_TO_SIZE (   _length,
  _alignment 
)    (((_length) + ((_alignment)-1)) & ~((_alignment) - 1))

Definition at line 242 of file minispy.h.

Typedef Documentation

◆ COMMAND_MESSAGE

◆ FILE_ID

typedef ULONG_PTR FILE_ID

Definition at line 76 of file minispy.h.

◆ LOG_RECORD

typedef struct _LOG_RECORD LOG_RECORD

◆ MINISPY_COMMAND

◆ MINISPYVER

typedef struct _MINISPYVER MINISPYVER

◆ PCOMMAND_MESSAGE

◆ PLOG_RECORD

typedef struct _LOG_RECORD * PLOG_RECORD

◆ PMINISPYVER

typedef struct _MINISPYVER * PMINISPYVER

◆ PRECORD_DATA

typedef struct _RECORD_DATA * PRECORD_DATA

◆ PRECORD_LIST

typedef struct _RECORD_LIST * PRECORD_LIST

◆ RECORD_DATA

typedef struct _RECORD_DATA RECORD_DATA

◆ RECORD_LIST

typedef struct _RECORD_LIST RECORD_LIST

Enumeration Type Documentation

◆ _MINISPY_COMMAND

Enumerator
GetMiniSpyLog 
GetMiniSpyVersion 

Definition at line 183 of file minispy.h.

Function Documentation

◆ _Return_type_success_()

typedef _Return_type_success_ ( return >=  0)

Social Network


Services Overview

Architect, implement and test file system filter drivers for a wide range of functionality. We can offer several levels of assistance to meet your specific.

Contact Us

You are welcome to contact us for salse or partnership.

Sales: sales@easefilter.com
Support: support@easefilter.com
Info: info@easefilter.com