33#define IOCTL_INTERNAL_I8042_CONTROLLER_WRITE_BUFFER \
34 CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0FF2, METHOD_NEITHER, FILE_ANY_ACCESS)
36#define IOCTL_INTERNAL_I8042_HOOK_KEYBOARD \
37 CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0FF0, METHOD_NEITHER, FILE_ANY_ACCESS)
39#define IOCTL_INTERNAL_I8042_KEYBOARD_START_INFORMATION \
40 CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0FF3, METHOD_NEITHER, FILE_ANY_ACCESS)
42#define IOCTL_INTERNAL_I8042_KEYBOARD_WRITE_BUFFER \
43 CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0FF1, METHOD_NEITHER, FILE_ANY_ACCESS)
45#define IOCTL_INTERNAL_I8042_HOOK_MOUSE \
46 CTL_CODE(FILE_DEVICE_MOUSE, 0x0FF0, METHOD_NEITHER, FILE_ANY_ACCESS)
48#define IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION \
49 CTL_CODE(FILE_DEVICE_MOUSE, 0x0FF3, METHOD_NEITHER, FILE_ANY_ACCESS)
51#define IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER \
52 CTL_CODE(FILE_DEVICE_MOUSE, 0x0FF1, METHOD_NEITHER, FILE_ANY_ACCESS)
54#define I8042_POWER_SYS_BUTTON 0x0001
55#define I8042_SLEEP_SYS_BUTTON 0x0002
56#define I8042_WAKE_SYS_BUTTON 0x0004
57#define I8042_SYS_BUTTONS (I8042_POWER_SYS_BUTTON | \
58 I8042_SLEEP_SYS_BUTTON | \
59 I8042_WAKE_SYS_BUTTON)
160 IN PVOID InitializationContext,
NTSTATUS(NTAPI * PI8042_SYNCH_WRITE_PORT)(IN PVOID Context, IN UCHAR Value, IN BOOLEAN WaitForACK)
enum _MOUSE_STATE * PMOUSE_STATE
enum _MOUSE_RESET_SUBSTATE MOUSE_RESET_SUBSTATE
NTSTATUS(NTAPI * PI8042_SYNCH_READ_PORT)(IN PVOID Context, OUT PUCHAR Value, IN BOOLEAN WaitForACK)
struct _INTERNAL_I8042_HOOK_KEYBOARD * PINTERNAL_I8042_HOOK_KEYBOARD
enum _MOUSE_STATE MOUSE_STATE
struct _INTERNAL_I8042_HOOK_KEYBOARD INTERNAL_I8042_HOOK_KEYBOARD
struct _INTERNAL_I8042_HOOK_MOUSE INTERNAL_I8042_HOOK_MOUSE
VOID(NTAPI * PI8042_ISR_WRITE_PORT)(IN PVOID Context, IN UCHAR Value)
BOOLEAN(NTAPI * PI8042_MOUSE_ISR)(PVOID IsrContext, PMOUSE_INPUT_DATA CurrentInput, POUTPUT_PACKET CurrentOutput, UCHAR StatusByte, PUCHAR Byte, PBOOLEAN ContinueProcessing, PMOUSE_STATE MouseState, PMOUSE_RESET_SUBSTATE ResetSubState)
enum _MOUSE_RESET_SUBSTATE * PMOUSE_RESET_SUBSTATE
enum _TRANSMIT_STATE TRANSMIT_STATE
enum _KEYBOARD_SCAN_STATE KEYBOARD_SCAN_STATE
@ ExpectingGetDeviceIdDetectACK
@ ExpectingLoopSetSamplingRateValueACK
@ ExpectingReadMouseStatusACK
@ ExpectingGetDeviceId2ACK
@ ExpectingSetResolutionValueACK
@ ExpectingReadMouseStatusByte1
@ ExpectingSetScaling1to1ACK3
@ ExpectingGetDeviceIdValue
@ ExpectingFinalResolutionValueACK
@ ExpectingSetSamplingRateValueACK
@ ExpectingSetResolutionDefaultACK
@ ExpectingSetScaling1to1ACK
@ ExpectingReadMouseStatusByte3
@ ExpectingSetResolutionDefaultValueACK
@ ExpectingLoopSetSamplingRateACK
@ ExpectingReadMouseStatusByte2
@ ExpectingSetScaling1to1ACK2
@ ExpectingGetDeviceIdDetectValue
@ ExpectingGetDeviceId2Value
@ ExpectingSetResolutionACK
@ ExpectingSetSamplingRateACK
@ ExpectingGetDeviceIdACK
@ ExpectingFinalResolutionACK
NTSTATUS(NTAPI * PI8042_KEYBOARD_INITIALIZATION_ROUTINE)(IN PVOID InitializationContext, IN PVOID SynchFuncContext, IN PI8042_SYNCH_READ_PORT ReadPort, IN PI8042_SYNCH_WRITE_PORT WritePort, OUT PBOOLEAN TurnTranslationOn)
struct _OUTPUT_PACKET * POUTPUT_PACKET
struct _INTERNAL_I8042_START_INFORMATION INTERNAL_I8042_START_INFORMATION
BOOLEAN(NTAPI * PI8042_KEYBOARD_ISR)(PVOID IsrContext, PKEYBOARD_INPUT_DATA CurrentInput, POUTPUT_PACKET CurrentOutput, UCHAR StatusByte, PUCHAR Byte, PBOOLEAN ContinueProcessing, PKEYBOARD_SCAN_STATE ScanState)
struct _OUTPUT_PACKET OUTPUT_PACKET
enum _KEYBOARD_SCAN_STATE * PKEYBOARD_SCAN_STATE
VOID(NTAPI * PI8042_QUEUE_PACKET)(IN PVOID Context)
struct _INTERNAL_I8042_HOOK_MOUSE * PINTERNAL_I8042_HOOK_MOUSE
struct _INTERNAL_I8042_START_INFORMATION * PINTERNAL_I8042_START_INFORMATION
BOOL WINAPI ReadPort(_In_ HANDLE hPort, _Out_writes_bytes_(cbBuffer) LPBYTE pBuffer, _In_ DWORD cbBuffer, _Out_ LPDWORD pcbRead)
BOOL WINAPI WritePort(_In_ HANDLE hPort, _In_reads_bytes_(cbBuf) LPBYTE pBuffer, _In_ DWORD cbBuf, _Out_ LPDWORD pcbWritten)
OUT PI8042_KEYBOARD_ISR IsrRoutine
IN PI8042_ISR_WRITE_PORT IsrWritePort
IN PI8042_QUEUE_PACKET QueueKeyboardPacket
OUT PI8042_KEYBOARD_INITIALIZATION_ROUTINE InitializationRoutine
OUT PI8042_MOUSE_ISR IsrRoutine
IN PI8042_QUEUE_PACKET QueueMousePacket
IN PI8042_ISR_WRITE_PORT IsrWritePort
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_Reserved_ PVOID Reserved