5 #include <pseh/pseh2.h>
11 #define MIN(a, b) ((a) < (b) ? (a) : (b))
13 #define CLASS_TAG 'CuoM'
14 #define DPFLTR_CLASS_NAME_ID DPFLTR_MOUCLASS_ID
25 typedef struct _CLASS_DRIVER_EXTENSION
27 UNICODE_STRING RegistryPath
;
29 /* Registry settings */
30 ULONG ConnectMultiplePorts
;
32 UNICODE_STRING DeviceBaseName
;
34 PDEVICE_OBJECT MainClassDeviceObject
;
35 } CLASS_DRIVER_EXTENSION
, *PCLASS_DRIVER_EXTENSION
;
37 typedef struct _COMMON_DEVICE_EXTENSION
40 } COMMON_DEVICE_EXTENSION
, *PCOMMON_DEVICE_EXTENSION
;
42 typedef struct _PORT_DEVICE_EXTENSION
44 COMMON_DEVICE_EXTENSION Common
;
47 PDEVICE_OBJECT DeviceObject
;
48 PORT_DEVICE_STATE PnpState
;
49 PDEVICE_OBJECT LowerDevice
;
50 PDEVICE_OBJECT ClassDO
;
51 UNICODE_STRING InterfaceName
;
52 } PORT_DEVICE_EXTENSION
, *PPORT_DEVICE_EXTENSION
;
54 typedef struct _CLASS_DEVICE_EXTENSION
56 COMMON_DEVICE_EXTENSION Common
;
58 PCLASS_DRIVER_EXTENSION DriverExtension
;
61 KSPIN_LOCK ListSpinLock
;
65 PMOUSE_INPUT_DATA PortData
;
67 } CLASS_DEVICE_EXTENSION
, *PCLASS_DEVICE_EXTENSION
;
73 IN PDEVICE_OBJECT DeviceObject
,
76 DRIVER_DISPATCH ForwardIrpAndForget
;
79 DuplicateUnicodeString(
81 IN PCUNICODE_STRING SourceString
,
82 OUT PUNICODE_STRING DestinationString
);