17#include "../../../dll/win32/mmdrv/mmdef.h"
19#define DEFAULT_PORT 0x330
22#define DEVICE_SUBKEY L"Devices"
23#define PARMS_SUBKEY L"Parameters"
25#define REGISTRY_PORT L"Port"
28#define MPU401_PORT DEFAULT_PORT
29#define MPU401_IRQ DEFAULT_IRQ
31#define MPU401_TIMEOUT 10000
53#define MPU401_WRITE_DATA(bp, x) WRITE_PORT_UCHAR((PUCHAR) bp, x)
54#define MPU401_READ_DATA(bp) READ_PORT_UCHAR((PUCHAR) bp)
55#define MPU401_WRITE_COMMAND(bp, x) WRITE_PORT_UCHAR((PUCHAR) bp+1, x)
56#define MPU401_READ_STATUS(bp) READ_PORT_UCHAR((PUCHAR) bp+1)
61#define MPU401_READY_TO_SEND(bp) \
62 MPU401_READ_STATUS(bp) & 0x80
64#define MPU401_READY_TO_RECEIVE(bp) \
65 MPU401_READ_STATUS(bp) & 0x40
68#define MPU401_WRITE_BYTE(bp, x) \
69 if (WaitToSend(bp)) MPU401_WRITE_DATA(bp, x)
71#define MPU401_WRITE_MESSAGE(bp, status, da, db) \
72 MPU401_WRITE(bp, status); \
73 MPU401_WRITE(bp, da); \
DRIVER_INITIALIZE DriverEntry
_In_ GUID _In_ PVOID ValueData
BOOLEAN WaitToReceive(ULONG BasePort)
NTSTATUS NTAPI EnumDeviceKeys(IN PUNICODE_STRING RegistryPath, IN PWSTR SubKey, IN PREGISTRY_CALLBACK_ROUTINE Callback, IN PVOID Context)
struct _DEVICE_EXTENSION DEVICE_EXTENSION
NTSTATUS REGISTRY_CALLBACK_ROUTINE(PWSTR RegistryPath, PVOID Context)
BOOLEAN WaitToSend(ULONG BasePort)
BOOLEAN InitUARTMode(ULONG BasePort)
struct _DEVICE_EXTENSION * PDEVICE_EXTENSION
struct _DEVICE_INSTANCE * PDEVICE_INSTANCE
struct _DEVICE_INSTANCE DEVICE_INSTANCE
REGISTRY_CALLBACK_ROUTINE * PREGISTRY_CALLBACK_ROUTINE
_In_ PCWSTR _Inout_ _At_ QueryTable EntryContext
PDRIVER_OBJECT DriverObject
PUNICODE_STRING RegistryPath
PDRIVER_OBJECT DriverObject
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG _Out_opt_ PULONG _Out_opt_ PULONG ValueType
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG ValueLength