?? testdrv.h
字號:
// ===================================================================
// Testdrv.h
// Header file for the Test USB Device Driver;
// Kernel & user mode
//
// ===================================================================
#ifdef DRIVER
#define Test_NAME_MAX 64
//modes
#define Test_MODE_USE_POOL 0
#define Test_MODE_USE_MDL 1
//options
#define Test_OPT_NONE 0
// This is an unused structure in this driver, but is provided here
// so when you extend the driver to deal with USB pipes, you may wish
// to use this structure as an example or model.
typedef struct _Test_PIPE {
ULONG Mode;
ULONG Option;
ULONG Param1;
ULONG Param2;
PUSBD_PIPE_INFORMATION PipeInfo;
} Test_PIPE, *PTest_PIPE;
// The interface number on this device that this driver expects to use
// This would be in the bInterfaceNumber field of the Interface Descriptor, hence
// this device driver would need to know this value.
#define SAMPLE_INTERFACE_NBR 0x00
// This driver supports only interface
#define MAX_INTERFACE 0x01
// A structure representing the instance information associated with
// this particular device.
#if DBG
#define Test_KdPrint(_x_) DbgPrint("Test.SYS: "); \
DbgPrint _x_ ;
#define TRAP() DbgBreakPoint()
#else
#define Test_KdPrint(_x_)
#define TRAP()
#endif
#ifndef max
#define max(a,b) (((a) > (b)) ? (a) : (b))
#endif
#endif //DRIVER section
ULONG
Test_GetDeviceDescriptor(
IN PDEVICE_OBJECT DeviceObject,
PVOID pvOutputBuffer
);
ULONG
Test_GetConfigDescriptor(
IN PDEVICE_OBJECT DeviceObject,
PVOID pvOutputBuffer,
ULONG ulLength
);
NTSTATUS
Test_ProcessIOCTL(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
Test_Create(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
Test_Read(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
Test_Write(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
// ===================================================================
//
// IRP IOCTL Definitions
//
// User mode applications wishing to send IOCTLs to a kernel mode driver
// must use this file to set up the correct type of IOCTL code permissions.
//
// Note: this file depends on the file DEVIOCTL.H which contains the macro
// definition for "CTL_CODE" below. Include that file before you include
// this one in your source code.
//
// ===================================================================
#define Test_IOCTL_INDEX 0x0800
#define IRP_Test_GET_PIPE_INFO CTL_CODE(FILE_DEVICE_UNKNOWN, \
Test_IOCTL_INDEX+0,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IRP_Test_GET_DEVICE_DESCRIPTOR CTL_CODE(FILE_DEVICE_UNKNOWN, \
Test_IOCTL_INDEX+1,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IRP_Test_GET_CONFIGURATION_DESCRIPTOR CTL_CODE(FILE_DEVICE_UNKNOWN, \
Test_IOCTL_INDEX+2,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IRP_TEST_GETONE CTL_CODE(FILE_DEVICE_UNKNOWN, \
Test_IOCTL_INDEX+5,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IRP_TEST_GETTWO CTL_CODE(FILE_DEVICE_UNKNOWN, \
Test_IOCTL_INDEX+6,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IRP_TEST_SETONE CTL_CODE(FILE_DEVICE_UNKNOWN, \
Test_IOCTL_INDEX+7,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
#define IRP_TEST_SETTWO CTL_CODE(FILE_DEVICE_UNKNOWN, \
Test_IOCTL_INDEX+8,\
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -