Data Structures |
| struct | PI8042_SETTINGS |
| struct | PINTERRUPT_DATA |
| struct | PPORT_DEVICE_EXTENSION |
| struct | PI8042_DRIVER_EXTENSION |
| struct | PFDO_DEVICE_EXTENSION |
| struct | I8042_KEYBOARD_EXTENSION |
| struct | I8042_MOUSE_EXTENSION |
| struct | PI8042_HOOK_WORKITEM |
Defines |
| #define | I8042PRT_TAG '2408' |
| #define | WHEEL_DELTA 120 |
| #define | KEYBOARD_PRESENT 0x01 /* A keyboard is attached */ |
| #define | KEYBOARD_CONNECTED 0x02 /* Keyboard received IOCTL_INTERNAL_KEYBOARD_CONNECT */ |
| #define | KEYBOARD_STARTED 0x04 /* Keyboard FDO received IRP_MN_START_DEVICE */ |
| #define | KEYBOARD_INITIALIZED 0x08 /* Keyboard interrupt is connected */ |
| #define | MOUSE_PRESENT 0x10 /* A mouse is attached */ |
| #define | MOUSE_CONNECTED 0x20 /* Mouse received IOCTL_INTERNAL_MOUSE_CONNECT */ |
| #define | MOUSE_STARTED 0x40 /* Mouse FDO received IRP_MN_START_DEVICE */ |
| #define | MOUSE_INITIALIZED 0x80 /* Mouse interrupt is connected */ |
| #define | MAX(a, b) ((a) >= (b) ? (a) : (b)) |
| #define | KEYBOARD_POWER_CODE 0x5E |
| #define | KEYBOARD_SLEEP_CODE 0x5F |
| #define | KEYBOARD_WAKE_CODE 0x63 |
| #define | KBD_READ_MODE 0x20 |
| #define | KBD_WRITE_MODE 0x60 |
| #define | MOUSE_ENAB 0xA8 |
| #define | MOUSE_LINE_TEST 0xA9 |
| #define | CTRL_SELF_TEST 0xAA |
| #define | CTRL_WRITE_MOUSE 0xD4 |
| #define | KBD_CMD_SET_LEDS 0xED |
| #define | KBD_CMD_GET_ID 0xF2 |
| #define | KBD_SELF_TEST_OK 0x55 |
| #define | KBD_ACK 0xFA |
| #define | KBD_NACK 0xFC |
| #define | KBD_RESEND 0xFE |
| #define | KBD_OBF 0x01 |
| #define | KBD_IBF 0x02 |
| #define | MOU_OBF 0x20 |
| #define | KBD_PERR 0x80 |
| #define | CCB_KBD_INT_ENAB 0x01 |
| #define | CCB_MOUSE_INT_ENAB 0x02 |
| #define | CCB_SYSTEM_FLAG 0x04 |
| #define | CCB_KBD_DISAB 0x10 |
| #define | CCB_MOUSE_DISAB 0x20 |
| #define | CCB_TRANSLATE 0x40 |
| #define | KBD_LED_SCROLL 0x01 |
| #define | KBD_LED_NUM 0x02 |
| #define | KBD_LED_CAPS 0x04 |
| #define | MOU_ENAB 0xF4 |
| #define | MOU_CMD_RESET 0xFF |
| #define | MOUSE_ACK 0xFA |
| #define | MOUSE_ERROR 0xFC |
| #define | MOUSE_NACK 0xFE |
| #define | i8042ReadKeyboardData(DeviceExtension, Data) i8042ReadData(DeviceExtension, KBD_OBF, Data) |
| #define | i8042ReadMouseData(DeviceExtension, Data) i8042ReadData(DeviceExtension, MOU_OBF, Data) |
Typedefs |
| typedef enum _MOUSE_TIMEOUT_STATE * | PMOUSE_TIMEOUT_STATE |
typedef struct
_I8042_KEYBOARD_EXTENSION * | PI8042_KEYBOARD_EXTENSION |
typedef struct
_I8042_MOUSE_EXTENSION * | PI8042_MOUSE_EXTENSION |
| typedef enum _I8042_DEVICE_TYPE * | PI8042_DEVICE_TYPE |
| typedef enum _I8042_MOUSE_TYPE * | PI8042_MOUSE_TYPE |
Enumerations |
| enum | DEVICE_STATE {
dsStopped,
dsStarted,
dsPaused,
dsRemoved,
dsSurpriseRemoved,
NotStarted = 0,
Started,
StopPending,
Stopped,
RemovePending,
SurpriseRemovePending,
Deleted
} |
| enum | MOUSE_TIMEOUT_STATE { NoChange,
TimeoutStart,
TimeoutCancel
} |
| enum | I8042_DEVICE_TYPE { Unknown,
Keyboard,
Mouse,
PhysicalDeviceObject
} |
| enum | I8042_MOUSE_TYPE { GenericPS2,
Intellimouse,
IntellimouseExplorer,
Ps2pp
} |
Functions |
| NTSTATUS NTAPI | i8042SynchWritePortKbd (IN PVOID Context, IN UCHAR Value, IN BOOLEAN WaitForAck) |
| BOOLEAN | i8042PacketIsr (IN PPORT_DEVICE_EXTENSION DeviceExtension, IN UCHAR Output) |
| NTSTATUS | i8042StartPacket (IN PPORT_DEVICE_EXTENSION DeviceExtension, IN PFDO_DEVICE_EXTENSION FdoDeviceExtension, IN PUCHAR Bytes, IN ULONG ByteCount, IN PIRP Irp) |
| NTSTATUS | DuplicateUnicodeString (IN ULONG Flags, IN PCUNICODE_STRING SourceString, OUT PUNICODE_STRING DestinationString) |
| VOID | i8042MouHandle (IN PI8042_MOUSE_EXTENSION DeviceExtension, IN UCHAR Output) |
| VOID | i8042MouHandleButtons (IN PI8042_MOUSE_EXTENSION DeviceExtension, IN USHORT Mask) |
| NTSTATUS | i8042MouInitialize (IN PI8042_MOUSE_EXTENSION DeviceExtension) |
| BOOLEAN | i8042ChangeMode (IN PPORT_DEVICE_EXTENSION DeviceExtension, IN UCHAR FlagsToDisable, IN UCHAR FlagsToEnable) |
| VOID | i8042MouHandlePs2pp (IN PI8042_MOUSE_EXTENSION DeviceExtension, IN UCHAR Input) |
| VOID | i8042Flush (IN PPORT_DEVICE_EXTENSION DeviceExtension) |
| BOOLEAN | i8042IsrWritePort (IN PPORT_DEVICE_EXTENSION DeviceExtension, IN UCHAR Value, IN UCHAR SelectCmd OPTIONAL) |
| NTSTATUS | i8042ReadData (IN PPORT_DEVICE_EXTENSION DeviceExtension, IN UCHAR StatusFlags, OUT PUCHAR Data) |
| NTSTATUS | i8042ReadDataWait (IN PPORT_DEVICE_EXTENSION DeviceExtension, OUT PUCHAR Data) |
| NTSTATUS | i8042ReadStatus (IN PPORT_DEVICE_EXTENSION DeviceExtension, OUT PUCHAR Status) |
| NTSTATUS NTAPI | i8042SynchReadPort (IN PVOID Context, OUT PUCHAR Value, IN BOOLEAN WaitForAck) |
| NTSTATUS NTAPI | i8042SynchWritePort (IN PPORT_DEVICE_EXTENSION DeviceExtension, IN UCHAR Port, IN UCHAR Value, IN BOOLEAN WaitForAck) |
| BOOLEAN | i8042Write (IN PPORT_DEVICE_EXTENSION DeviceExtension, IN PUCHAR addr, IN UCHAR data) |
| NTSTATUS | ReadRegistryEntries (IN PUNICODE_STRING RegistryPath, OUT PI8042_SETTINGS Settings) |
Variables |
| IO_WORKITEM_ROUTINE | i8042SendHookWorkItem |
| DRIVER_DISPATCH | i8042Create |
| DRIVER_DISPATCH | i8042Cleanup |
| DRIVER_DISPATCH | i8042Close |
| DRIVER_STARTIO | i8042KbdStartIo |
| DRIVER_DISPATCH | i8042KbdDeviceControl |
| DRIVER_DISPATCH | i8042KbdInternalDeviceControl |
| KSERVICE_ROUTINE | i8042KbdInterruptService |
| DRIVER_ADD_DEVICE | i8042AddDevice |
| DRIVER_DISPATCH | ForwardIrpAndForget |
| DRIVER_DISPATCH | ForwardIrpAndWait |
| DRIVER_DISPATCH | i8042MouInternalDeviceControl |
| KSERVICE_ROUTINE | i8042MouInterruptService |
| DRIVER_DISPATCH | i8042Pnp |