55#define ControllerConfig Memory[0]
139 case 0x21:
case 0x22:
case 0x23:
140 case 0x24:
case 0x25:
case 0x26:
case 0x27:
141 case 0x28:
case 0x29:
case 0x2A:
case 0x2B:
142 case 0x2C:
case 0x2D:
case 0x2E:
case 0x2F:
143 case 0x30:
case 0x31:
case 0x32:
case 0x33:
144 case 0x34:
case 0x35:
case 0x36:
case 0x37:
145 case 0x38:
case 0x39:
case 0x3A:
case 0x3B:
146 case 0x3C:
case 0x3D:
case 0x3E:
case 0x3F:
156 case 0x61:
case 0x62:
case 0x63:
157 case 0x64:
case 0x65:
case 0x66:
case 0x67:
158 case 0x68:
case 0x69:
case 0x6A:
case 0x6B:
159 case 0x6C:
case 0x6D:
case 0x6E:
case 0x6F:
160 case 0x70:
case 0x71:
case 0x72:
case 0x73:
161 case 0x74:
case 0x75:
case 0x76:
case 0x77:
162 case 0x78:
case 0x79:
case 0x7A:
case 0x7B:
163 case 0x7C:
case 0x7D:
case 0x7E:
case 0x7F:
268 case 0xF0:
case 0xF2:
case 0xF4:
case 0xF6:
269 case 0xF8:
case 0xFA:
case 0xFC:
case 0xFE:
328 case 0x61:
case 0x62:
case 0x63:
329 case 0x64:
case 0x65:
case 0x66:
case 0x67:
330 case 0x68:
case 0x69:
case 0x6A:
case 0x6B:
331 case 0x6C:
case 0x6D:
case 0x6E:
case 0x6F:
332 case 0x70:
case 0x71:
case 0x72:
case 0x73:
333 case 0x74:
case 0x75:
case 0x76:
case 0x77:
334 case 0x78:
case 0x79:
case 0x7A:
case 0x7B:
335 case 0x7C:
case 0x7D:
case 0x7E:
case 0x7F:
427 if (
Port->QueueEmpty)
447 if (
Port->QueueEmpty)
goto Done;
468 if (
Port->QueueStart ==
Port->QueueEnd)
499 if (!
Port->QueueEmpty && (
Port->QueueStart ==
Port->QueueEnd))
#define HARDWARE_TIMER_ONESHOT
VOID EmulatorTerminate(VOID)
#define UNREFERENCED_PARAMETER(P)
static BYTE WINAPI PS2ReadControl(USHORT Port)
VOID PS2SetDeviceCmdProc(BYTE PS2Port, LPVOID Param, PS2_DEVICE_CMDPROC DeviceCommand)
BOOLEAN PS2PortQueueRead(BYTE PS2Port)
static BYTE ControllerCommand
BOOLEAN PS2QueuePush(BYTE PS2Port, BYTE Data)
static VOID FASTCALL GeneratePS2Irq(ULONGLONG ElapsedTime)
static BYTE WINAPI PS2ReadData(USHORT Port)
struct _PS2_PORT * PPS2_PORT
static VOID WINAPI PS2WriteControl(USHORT Port, BYTE Data)
struct _PS2_PORT PS2_PORT
static VOID PS2SendCommand(BYTE PS2Port, BYTE Command)
static PHARDWARE_TIMER IrqTimer
static VOID WINAPI PS2WriteData(USHORT Port, BYTE Data)
static PS2_PORT Ports[PS2_PORTS]
BOOLEAN PS2Initialize(VOID)
static BYTE StatusRegister
#define PS2_STAT_OUT_BUF_FULL
#define PS2_CONFIG_NO_KEYLOCK
#define PS2_STAT_PARITY_ERROR
#define PS2_STAT_GEN_TIMEOUT
VOID(WINAPI * PS2_DEVICE_CMDPROC)(LPVOID Param, BYTE Command)
#define PS2_CONFIG_AUX_INT
#define PS2_CONFIG_KBD_INT
#define PS2_CONFIG_AUX_DISABLE
#define PS2_CONFIG_KBD_DISABLE
#define PS2_OUT_CPU_NO_RESET
#define PS2_STAT_AUX_OUT_BUF_FULL
#define PS2_STAT_KBD_ENABLE
#define PS2_CONFIG_SYSTEM
PS2_DEVICE_CMDPROC DeviceCommand
PHARDWARE_TIMER CreateHardwareTimer(ULONG Flags, ULONGLONG Delay, PHARDWARE_TIMER_PROC Callback)
VOID DestroyHardwareTimer(PHARDWARE_TIMER Timer)
VOID EnableHardwareTimer(PHARDWARE_TIMER Timer)
VOID PicInterruptRequest(BYTE Number)
VOID RegisterIoPort(USHORT Port, EMULATOR_INB_PROC InHandler, EMULATOR_OUTB_PROC OutHandler)
BOOLEAN EmulatorGetA20(VOID)
VOID EmulatorSetA20(BOOLEAN Enabled)
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
BOOL WINAPI DECLSPEC_HOTPATCH ReleaseMutex(IN HANDLE hMutex)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE Queue
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY * Memory
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO