2018-11-23 23:24:41 +00:00
|
|
|
/*
|
|
|
|
Making NTSTATUS available is slightly awkward. See:
|
|
|
|
https://kirkshoop.github.io/2011/09/20/ntstatus.html
|
|
|
|
*/
|
|
|
|
|
2018-10-08 02:01:39 +00:00
|
|
|
/* Win32 user-mode API */
|
2018-11-23 23:24:41 +00:00
|
|
|
#define WIN32_NO_STATUS
|
2018-10-08 02:01:39 +00:00
|
|
|
#include <windows.h>
|
2018-11-23 23:24:41 +00:00
|
|
|
#undef WIN32_NO_STATUS
|
2018-10-08 02:01:39 +00:00
|
|
|
#include <winternl.h>
|
|
|
|
#include <setupapi.h>
|
|
|
|
#include <unknwn.h>
|
2019-09-04 17:31:55 +00:00
|
|
|
#include <windns.h>
|
2019-09-07 20:26:10 +00:00
|
|
|
#include <ws2tcpip.h>
|
2019-03-05 18:29:56 +00:00
|
|
|
#include <dinput.h>
|
2019-03-05 18:28:23 +00:00
|
|
|
#include <xinput.h>
|
2018-10-08 02:01:39 +00:00
|
|
|
#include <d3d9.h>
|
|
|
|
|
|
|
|
/* Win32 kernel-mode definitions */
|
2018-11-23 23:24:41 +00:00
|
|
|
#ifdef __GNUC__
|
|
|
|
/* MinGW needs to include this for PHYSICAL_ADDRESS to be defined.
|
|
|
|
The MS SDK throws a bunch of duplicate symbol errors instead. */
|
2018-10-08 02:01:39 +00:00
|
|
|
#include <ntdef.h>
|
2018-11-23 23:24:41 +00:00
|
|
|
#else
|
|
|
|
#include <winnt.h>
|
|
|
|
#endif
|
2018-10-08 02:01:39 +00:00
|
|
|
#include <devioctl.h>
|
2018-11-23 23:24:41 +00:00
|
|
|
#include <ntdddisk.h>
|
2018-10-08 02:01:39 +00:00
|
|
|
#include <ntddser.h>
|
2018-11-23 23:24:41 +00:00
|
|
|
#include <ntstatus.h>
|
2018-10-08 02:01:39 +00:00
|
|
|
|
|
|
|
#include <assert.h>
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include <stddef.h>
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
2019-05-13 20:49:28 +00:00
|
|
|
#include <wchar.h>
|