📄 nvioctl.h
字号:
/* nvioctl.h
*
* External entry info for calls to NDISHOOK VxD
*/
/* macro to build Windows DeviceIoControl() command codes for NDIS hook VxD */
#define MK_IOCTL_CMD(access, func, method) (0x40000000 | (access << 14) | (func << 2) | method)
/* IO codes for calls to NDISHOOK VxD */
#define ND_IOCTL_BIND MK_IOCTL_CMD(0, 1, 0)
#define ND_IOCTL_GET_DESC MK_IOCTL_CMD(0, 2, 0)
#define ND_IOCTL_MACADDR MK_IOCTL_CMD(0, 3, 0)
#define ND_IOCTL_RECEIVE MK_IOCTL_CMD(0, 4, 0)
#define ND_IOCTL_SEND MK_IOCTL_CMD(0, 5, 0)
#define ND_IOCTL_CLEAR_PEND MK_IOCTL_CMD(0, 6, 0)
#define ND_IOCTL_SET_FILTER MK_IOCTL_CMD(0, 7, 0)
#define ND_IOCTL_GET_STATS MK_IOCTL_CMD(0, 8, 0)
#define ND_IOCTL_FLUSH MK_IOCTL_CMD(0, 9, 0)
#define ND_IOCTL_UNBIND MK_IOCTL_CMD(0, 10, 0)
/* definition for VxD statistics structure returned from IOCTL_GET_STATS */
struct ndis_vxd_stats
{
long rx_indications; /* total "receive indication" calls */
long rx_big; /* bigger than lookahead size */
long rx_small; /* smaller than lookahead size */
long rxrej_flushing; /* list of rxindicate reject errors */
long rxrej_recvq;
long rxrej_hdrsz;
long rxrej_nopkt;
long rxrej_buffer;
long rxerr_inst; /* list of receive_ioctl errors */
long rxerr_flushing;
long rxerr_maxq;
long rxerr_appbuf1;
long rxerr_appbuf2;
long rx_ok_pend; /* indicate did a pend */
long rx_ok; /* indicate completed OK */
long rx_empty; /* called rx ioctl and no packet was ready */
long rx_data; /* called rx ioctl and data WAS ready */
};
extern struct ndis_vxd_stats nvstats;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -