You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.0 KiB
74 lines
2.0 KiB
// @doc
|
|
/**********************************************************************
|
|
*
|
|
* @module HIDSWVD.h |
|
|
*
|
|
* Definitions and Declarations for Dummy Hid-Mini driver for virtual devices
|
|
*
|
|
* History
|
|
* ----------------------------------------------------------
|
|
* Mitchell S. Dernis Original
|
|
*
|
|
* (c) 1986-1998 Microsoft Corporation. All right reserved.
|
|
*
|
|
* @topic HIDSWVD |
|
|
* The SideWinder Virtual Bus (SWVB) that is created by GcKernel needs a dummy
|
|
* driver in order to expose HID devices. The difficulty is that HIDCLASS
|
|
* really does require a separate layer for these device objects.
|
|
* This driver fits the bill. It does absolutely nothing, except pass IRPs down
|
|
* to the SWVB module in GcKernel which handles everything.
|
|
**********************************************************************/
|
|
|
|
|
|
// @struct HIDSWVB_EXTENSION | Minimum HID device extension.
|
|
typedef struct tagHIDSWVB_EXTENSION
|
|
{
|
|
ULONG ulReserved; // @field a Placeholder as extension needs non-zero size
|
|
} HIDSWVB_EXTENSION, *PHIDSWVB_EXTENSION;
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
// Function prototypes
|
|
//---------------------------------------------------------------------------
|
|
|
|
NTSTATUS
|
|
DriverEntry(
|
|
IN PDRIVER_OBJECT DriverObject,
|
|
IN PUNICODE_STRING registryPath
|
|
);
|
|
|
|
NTSTATUS
|
|
HIDSWVD_PassThrough(
|
|
IN PDEVICE_OBJECT pDeviceObject,
|
|
IN PIRP pIrp
|
|
);
|
|
|
|
NTSTATUS
|
|
HIDSWVD_AddDevice(
|
|
IN PDRIVER_OBJECT DriverObject,
|
|
IN PDEVICE_OBJECT FunctionalDeviceObject
|
|
);
|
|
NTSTATUS
|
|
HIDSWVD_Power
|
|
(
|
|
IN PDEVICE_OBJECT pDeviceObject,
|
|
IN PIRP pIrp
|
|
);
|
|
|
|
VOID
|
|
HIDSWVD_Unload(
|
|
IN PDRIVER_OBJECT DriverObject
|
|
);
|
|
|
|
//-------------------------------------------------------------------------------
|
|
// Debug macros
|
|
//-------------------------------------------------------------------------------
|
|
#if (DBG==1)
|
|
#define HIDSWVD_DBG_PRINT(__x__)\
|
|
{\
|
|
DbgPrint("HIDSWVD: ");\
|
|
DbgPrint __x__;\
|
|
}
|
|
#else
|
|
#define HIDSWVD_DBG_PRINT(__x__)
|
|
#endif
|