1 #pragma once 2 3 #define IOCTL_FILTER_LOAD CTL_CODE(FILE_DEVICE_DISK_FILE_SYSTEM, 0x01, METHOD_BUFFERED, FILE_WRITE_DATA) //88004 4 #define IOCTL_FILTER_UNLOAD CTL_CODE(FILE_DEVICE_DISK_FILE_SYSTEM, 0x02, METHOD_BUFFERED, FILE_WRITE_DATA) //88008 5 #define IOCTL_FILTER_CREATE CTL_CODE(FILE_DEVICE_DISK_FILE_SYSTEM, 0x03, METHOD_BUFFERED, FILE_READ_DATA) //8400C 6 #define IOCTL_FILTER_ATTATCH CTL_CODE(FILE_DEVICE_DISK_FILE_SYSTEM, 0x04, METHOD_BUFFERED, FILE_WRITE_DATA) //88010 7 #define IOCTL_FILTER_DETATCH CTL_CODE(FILE_DEVICE_DISK_FILE_SYSTEM, 0x05, METHOD_BUFFERED, FILE_WRITE_DATA) //88014 8 #define IOCTL_FILTER_SEND_MESSAGE CTL_CODE(FILE_DEVICE_DISK_FILE_SYSTEM, 0x06, METHOD_NEITHER, FILE_WRITE_DATA) //8801B 9 #define IOCTL_FILTER_GET_MESSAGE CTL_CODE(FILE_DEVICE_DISK_FILE_SYSTEM, 0x07, METHOD_NEITHER, FILE_READ_DATA) //8401F 10 #define IOCTL_FILTER_REPLY_MESSAGE CTL_CODE(FILE_DEVICE_DISK_FILE_SYSTEM, 0x08, METHOD_NEITHER, FILE_WRITE_DATA) //88023 11 #define IOCTL_FILTER_FIND_FIRST CTL_CODE(FILE_DEVICE_DISK_FILE_SYSTEM, 0x09, METHOD_BUFFERED, FILE_READ_DATA) //84024 12 #define IOCTL_FILTER_FIND_NEXT CTL_CODE(FILE_DEVICE_DISK_FILE_SYSTEM, 0x0A, METHOD_BUFFERED, FILE_READ_DATA) //84028 13 #define IOCTL_FILTER_GET_INFO CTL_CODE(FILE_DEVICE_DISK_FILE_SYSTEM, 0x0B, METHOD_BUFFERED, FILE_READ_DATA) //8402C 14 15 16 typedef struct _FILTER_NAME 17 { 18 USHORT Length; 19 WCHAR FilterName[1]; 20 21 } FILTER_NAME, *PFILTER_NAME; 22 23 24 25 typedef struct _FILTER_PORT_DATA 26 { 27 ULONG Size; 28 UNICODE_STRING PortName; 29 ULONG Options; 30 PVOID Context; 31 ULONG ContextSize; 32 33 } FILTER_PORT_DATA, *PFILTER_PORT_DATA; 34