Update GUID's, Streamline Tracing, Update licenses

This commit is contained in:
Jason Hart
2019-11-18 14:59:23 -05:00
parent 12835c6290
commit 596c09680f
22 changed files with 52 additions and 83 deletions

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,5 +1,5 @@
; Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
; Copyright (C) 2016-2019 Nefarius Software Solutions e.U.
; Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
;
; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -22,21 +22,22 @@
// have to be exposed by the PDO or else the child devices won't start
//
// {70211B0E-0AFB-47DB-AFC1-410BF842497A}
// {70211B0E-0AFB-47DB-AFC1-410BF842497A} PNP_LOCATION_INTERFACE from wdmguid.h being used as a dummy
// ReSharper disable once CppMissingIncludeGuard
DEFINE_GUID(GUID_DEVINTERFACE_XGIP_UNKNOWN_0,
DEFINE_GUID(GUID_DEVINTERFACE_XGIP_PNP_LOCATION_DUMMY,
0x70211B0E, 0x0AFB, 0x47DB, 0xAF, 0xC1, 0x41, 0x0B, 0xF8, 0x42, 0x49, 0x7A);
// {B38290E5-3CD0-4F9D-9937-F5FE2B44D47A}
DEFINE_GUID(GUID_DEVINTERFACE_XGIP_UNKNOWN_1,
// {B38290E5-3CD0-4F9D-9937-F5FE2B44D47A} D3COLD_SUPPORT_INTERFACE from wdmguid.h being used as a dummy
DEFINE_GUID(GUID_DEVINTERFACE_XGIP_D3COLD_SUPPORT_DUMMY,
0xB38290E5, 0x3CD0, 0x4F9D, 0x99, 0x37, 0xF5, 0xFE, 0x2B, 0x44, 0xD4, 0x7A);
// {2AEB0243-6A6E-486B-82FC-D815F6B97006}
DEFINE_GUID(GUID_DEVINTERFACE_XGIP_UNKNOWN_2,
// {2AEB0243-6A6E-486B-82FC-D815F6B97006} REENUMERATE_SELF_INTERFACE_STANDARD from wdmguid.h being used as a dummy
DEFINE_GUID(GUID_DEVINTERFACE_XGIP_REENUMERATE_SELF_INTERFACE_STD_DUMMY,
0x2AEB0243, 0x6A6E, 0x486B, 0x82, 0xFC, 0xD8, 0x15, 0xF6, 0xB9, 0x70, 0x06);
// {DC7A8E51-49B3-4A3A-9E81-625205E7D729}
DEFINE_GUID(GUID_DEVINTERFACE_XGIP_UNKNOWN_3,
// {DC7A8E51-49B3-4A3A-9E81-625205E7D729} Seems to be GUID_POWER_THREAD_INTERFACE
// Source: https://github.com/microsoft/Windows-Driver-Frameworks/blob/master/src/framework/shared/irphandlers/pnp/fxpkgpnp.cpp#L63
DEFINE_GUID(GUID_DEVINTERFACE_XGIP_UNSURE_POWER_THREAD_INTERFACE_DUMMY,
0xDC7A8E51, 0x49B3, 0x4A3A, 0x9E, 0x81, 0x62, 0x52, 0x05, 0xE7, 0xD7, 0x29);
// {DEEE98EA-C0A1-42C3-9738-A04606C84E93}

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -24,17 +24,17 @@
// TODO: that statement might be obsolete, further testing required
//
// {70211B0E-0AFB-47DB-AFC1-410BF842497A}
// {70211B0E-0AFB-47DB-AFC1-410BF842497A} PNP_LOCATION_INTERFACE from wdmguid.h being used as a dummy
// ReSharper disable once CppMissingIncludeGuard
DEFINE_GUID(GUID_DEVINTERFACE_XUSB_UNKNOWN_0,
DEFINE_GUID(GUID_DEVINTERFACE_XUSB_PNP_LOCATION_DUMMY,
0x70211B0E, 0x0AFB, 0x47DB, 0xAF, 0xC1, 0x41, 0x0B, 0xF8, 0x42, 0x49, 0x7A);
// {B38290E5-3CD0-4F9D-9937-F5FE2B44D47A}
DEFINE_GUID(GUID_DEVINTERFACE_XUSB_UNKNOWN_1,
// {B38290E5-3CD0-4F9D-9937-F5FE2B44D47A} D3COLD_SUPPORT_INTERFACE from wdmguid.h being used as a dummy
DEFINE_GUID(GUID_DEVINTERFACE_XUSB_D3COLD_SUPPORT_DUMMY,
0xB38290E5, 0x3CD0, 0x4F9D, 0x99, 0x37, 0xF5, 0xFE, 0x2B, 0x44, 0xD4, 0x7A);
// {2AEB0243-6A6E-486B-82FC-D815F6B97006}
DEFINE_GUID(GUID_DEVINTERFACE_XUSB_UNKNOWN_2,
// {2AEB0243-6A6E-486B-82FC-D815F6B97006} REENUMERATE_SELF_INTERFACE_STANDARD from wdmguid.h being used as a dummy
DEFINE_GUID(GUID_DEVINTERFACE_XUSB_REENUMERATE_SELF_INTERFACE_STD_DUMMY,
0x2AEB0243, 0x6A6E, 0x486B, 0x82, 0xFC, 0xD8, 0x15, 0xF6, 0xB9, 0x70, 0x06);
#pragma once

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/*
* Virtual Gamepad Emulation Framework - Windows kernel-mode bus driver
* Copyright (C) 2016-2018 Benjamin H<>glinger-Stelzer
* Copyright (C) 2016-2019 Nefarius Software Solutions e.U. and Contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -123,85 +123,53 @@ NTSTATUS Xusb_PrepareHardware(WDFDEVICE Device)
dummyIface.InterfaceReference = WdfDeviceInterfaceReferenceNoOp;
dummyIface.InterfaceDereference = WdfDeviceInterfaceDereferenceNoOp;
/* XUSB.sys will query for the following three (unknown) interfaces
* BUT WONT USE IT so we just expose them to satisfy initialization. */
/* XUSB.sys will query for the following three "dummy" interfaces
* BUT WONT USE IT so we just expose them to satisfy initialization. (TODO: Check if still valid!)
*/
// Dummy 0
// Dummy PNP_LOCATION
WDF_QUERY_INTERFACE_CONFIG_INIT(&ifaceCfg, (PINTERFACE)&dummyIface, &GUID_DEVINTERFACE_XUSB_UNKNOWN_0, NULL);
WDF_QUERY_INTERFACE_CONFIG_INIT(&ifaceCfg, (PINTERFACE)&dummyIface, &GUID_DEVINTERFACE_XUSB_PNP_LOCATION_DUMMY, NULL);
status = WdfDeviceAddQueryInterface(Device, &ifaceCfg);
if (!NT_SUCCESS(status))
{
TraceEvents(TRACE_LEVEL_ERROR,
TRACE_XUSB,
"Couldn't register unknown interface GUID: %08X-%04X-%04X-%02X%02X%02X%02X%02X%02X%02X%02X " \
"(WdfDeviceAddQueryInterface failed with status %!STATUS!)",
GUID_DEVINTERFACE_XUSB_UNKNOWN_0.Data1,
GUID_DEVINTERFACE_XUSB_UNKNOWN_0.Data2,
GUID_DEVINTERFACE_XUSB_UNKNOWN_0.Data3,
GUID_DEVINTERFACE_XUSB_UNKNOWN_0.Data4[0],
GUID_DEVINTERFACE_XUSB_UNKNOWN_0.Data4[1],
GUID_DEVINTERFACE_XUSB_UNKNOWN_0.Data4[2],
GUID_DEVINTERFACE_XUSB_UNKNOWN_0.Data4[3],
GUID_DEVINTERFACE_XUSB_UNKNOWN_0.Data4[4],
GUID_DEVINTERFACE_XUSB_UNKNOWN_0.Data4[5],
GUID_DEVINTERFACE_XUSB_UNKNOWN_0.Data4[6],
GUID_DEVINTERFACE_XUSB_UNKNOWN_0.Data4[7],
"Couldn't register PNP_LOCATION dummy interface %!GUID! (WdfDeviceAddQueryInterface failed with status %!STATUS!)",
&GUID_DEVINTERFACE_XUSB_PNP_LOCATION_DUMMY,
status);
return status;
}
// Dummy 1
// Dummy D3COLD_SUPPORT
WDF_QUERY_INTERFACE_CONFIG_INIT(&ifaceCfg, (PINTERFACE)&dummyIface, &GUID_DEVINTERFACE_XUSB_UNKNOWN_1, NULL);
WDF_QUERY_INTERFACE_CONFIG_INIT(&ifaceCfg, (PINTERFACE)&dummyIface, &GUID_DEVINTERFACE_XUSB_D3COLD_SUPPORT_DUMMY, NULL);
status = WdfDeviceAddQueryInterface(Device, &ifaceCfg);
if (!NT_SUCCESS(status))
{
TraceEvents(TRACE_LEVEL_ERROR,
TRACE_XUSB,
"Couldn't register unknown interface GUID: %08X-%04X-%04X-%02X%02X%02X%02X%02X%02X%02X%02X " \
"(WdfDeviceAddQueryInterface failed with status %!STATUS!)",
GUID_DEVINTERFACE_XUSB_UNKNOWN_1.Data1,
GUID_DEVINTERFACE_XUSB_UNKNOWN_1.Data2,
GUID_DEVINTERFACE_XUSB_UNKNOWN_1.Data3,
GUID_DEVINTERFACE_XUSB_UNKNOWN_1.Data4[0],
GUID_DEVINTERFACE_XUSB_UNKNOWN_1.Data4[1],
GUID_DEVINTERFACE_XUSB_UNKNOWN_1.Data4[2],
GUID_DEVINTERFACE_XUSB_UNKNOWN_1.Data4[3],
GUID_DEVINTERFACE_XUSB_UNKNOWN_1.Data4[4],
GUID_DEVINTERFACE_XUSB_UNKNOWN_1.Data4[5],
GUID_DEVINTERFACE_XUSB_UNKNOWN_1.Data4[6],
GUID_DEVINTERFACE_XUSB_UNKNOWN_1.Data4[7],
"Couldn't register D3COLD_SUPPORT dummy interface %!GUID! (WdfDeviceAddQueryInterface failed with status %!STATUS!)",
&GUID_DEVINTERFACE_XUSB_D3COLD_SUPPORT_DUMMY,
status);
return status;
}
// Dummy 2
// Dummy REENUMERATE_SELF_INTERFACE_STANDARD
WDF_QUERY_INTERFACE_CONFIG_INIT(&ifaceCfg, (PINTERFACE)&dummyIface, &GUID_DEVINTERFACE_XUSB_UNKNOWN_2, NULL);
WDF_QUERY_INTERFACE_CONFIG_INIT(&ifaceCfg, (PINTERFACE)&dummyIface, &GUID_DEVINTERFACE_XUSB_REENUMERATE_SELF_INTERFACE_STD_DUMMY, NULL);
status = WdfDeviceAddQueryInterface(Device, &ifaceCfg);
if (!NT_SUCCESS(status))
{
TraceEvents(TRACE_LEVEL_ERROR,
TRACE_XUSB,
"Couldn't register unknown interface GUID: %08X-%04X-%04X-%02X%02X%02X%02X%02X%02X%02X%02X " \
"(WdfDeviceAddQueryInterface failed with status %!STATUS!)",
GUID_DEVINTERFACE_XUSB_UNKNOWN_2.Data1,
GUID_DEVINTERFACE_XUSB_UNKNOWN_2.Data2,
GUID_DEVINTERFACE_XUSB_UNKNOWN_2.Data3,
GUID_DEVINTERFACE_XUSB_UNKNOWN_2.Data4[0],
GUID_DEVINTERFACE_XUSB_UNKNOWN_2.Data4[1],
GUID_DEVINTERFACE_XUSB_UNKNOWN_2.Data4[2],
GUID_DEVINTERFACE_XUSB_UNKNOWN_2.Data4[3],
GUID_DEVINTERFACE_XUSB_UNKNOWN_2.Data4[4],
GUID_DEVINTERFACE_XUSB_UNKNOWN_2.Data4[5],
GUID_DEVINTERFACE_XUSB_UNKNOWN_2.Data4[6],
GUID_DEVINTERFACE_XUSB_UNKNOWN_2.Data4[7],
"Couldn't register REENUM_SELF_STD dummy interface %!GUID! (WdfDeviceAddQueryInterface failed with status %!STATUS!)",
&GUID_DEVINTERFACE_XUSB_REENUMERATE_SELF_INTERFACE_STD_DUMMY,
status);
return status;