178 if (!
NT_SUCCESS(HubOpenRegistryKey(
L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\USBHUB\\hubg",
216 if (!
NT_SUCCESS(HubOpenRegistryKey(
L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\usb\\Usb20HardwareLpm",
248 if (!
NT_SUCCESS(HubOpenRegistryKey(
L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\usb\\UsbLtm",
309 Status = HubOpenRegistryKey(
L"\\registry\\machine\\system\\currentcontrolset\\services\\usbhub\\uxd_control\\policy",
346HubResolveKernelRoutine(
static EVT_WDF_DRIVER_DEVICE_ADD EvtDeviceAdd
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG Flags
#define NT_SUCCESS(StatCode)
#define _IRQL_requires_(irql)
static VOID NTAPI HubApplyWakeOnConnectUI(_In_ ULONG Value)
static VOID NTAPI HubApplyDisableUxdSupport(_In_ ULONG Value)
WDF_DRIVER_CONFIG_INIT & Config
_In_ PCWSTR _Out_ PULONG Value
RtlInitUnicodeString & KeyName
static VOID NTAPI HubApplyEnableExtendedValidation(_In_ ULONG Value)
static VOID NTAPI HubApplyDisableOnSoftRemove(_In_ ULONG Value)
static VOID NTAPI HubApplyEnableDiagnosticMode(_In_ ULONG Value)
static const HubPolicyValue HubGlobalPolicy[]
static VOID NTAPI HubApplyPreventSuperSpeedDebounce(_In_ ULONG Value)
return WdfRegistryQueryValue(Key, &ValueName, sizeof(*Value), Value, NULL, NULL)
static VOID NTAPI HubApplyDisableSelectiveSuspendUI(_In_ ULONG Value)
DRIVER_INITIALIZE DriverEntry
const ULONG Microsoft_USBD_Compat_Version
static EVT_WDF_OBJECT_CONTEXT_CLEANUP HubEvtDriverCleanup
RtlInitUnicodeString & ValueName
VOID NTAPI HubNotifyBootDeviceRemoval(_In_opt_ PVOID Handle)
static VOID NTAPI HubApplyMsOsDescriptorMode(_In_ ULONG Value)
WDF_OBJECT_ATTRIBUTES Attributes
return WdfRegistryOpenKey(NULL, &KeyName, Access, WDF_NO_OBJECT_ATTRIBUTES, Key)
_In_ ACCESS_MASK _Out_ WDFKEY * Key
#define IsListEmpty(ListHead)
#define InitializeListHead(ListHead)
WdfRegistryClose(HardwareKey)
_Must_inspect_result_ NTSTATUS(NTAPI * PFN_HUB_GET_INTERFACE_PROPERTY)(_In_ PUNICODE_STRING SymbolicLinkName, _In_ CONST DEVPROPKEY *PropertyKey, _In_ LCID Lcid, _Reserved_ ULONG Flags, _In_ ULONG Size, _Out_writes_bytes_to_(Size, *RequiredSize) PVOID Data, _Out_ PULONG RequiredSize, _Out_ PDEVPROPTYPE Type)
NTSTATUS(NTAPI * PFN_HUB_REGISTER_POWER_SETTING)(_In_opt_ PDEVICE_OBJECT DeviceObject, _In_ LPCGUID SettingGuid, _In_ PPOWER_SETTING_CALLBACK Callback, _In_opt_ PVOID Context, _Outptr_opt_ PVOID *Handle)
NTSTATUS(NTAPI * PFN_HUB_KSE_QUERY_DEVICE_FLAGS)(_In_ PCWSTR DeviceKey, _In_ PCWSTR DeviceClass, _Out_ PULONG64 DeviceFlags)
@ EnableExtendedValidation
@ PreventSuperSpeedDebounce
@ DisableSelectiveSuspendUI
NTSTATUS(NTAPI * PFN_HUB_UNREGISTER_POWER_SETTING)(_Inout_ PVOID Handle)
#define RTL_REGISTRY_CONTROL
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define UNREFERENCED_PARAMETER(P)
PFN_HUB_KSE_QUERY_DEVICE_FLAGS KseQueryDeviceFlags
PFN_HUB_UNREGISTER_POWER_SETTING UnregisterPowerSetting
volatile LONG GlobalFlags
PFN_HUB_NOTIFY_BOOT_DEVICE_REMOVAL NotifyBootDeviceRemoval
WDFWAITLOCK CompanionPortLock
VOID SetFlag(_In_ HubGlobal Flag)
PFN_HUB_GET_INTERFACE_PROPERTY GetInterfaceProperty
PFN_HUB_REGISTER_POWER_SETTING RegisterPowerSetting
PDRIVER_OBJECT DriverObject
VOID ClearFlag(_In_ HubGlobal Flag)
VOID(NTAPI *Apply)(_In_ ULONG Value)
PVOID NTAPI MmGetSystemRoutineAddress(IN PUNICODE_STRING SystemRoutineName)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG Config
#define STATUS_OBJECT_NAME_NOT_FOUND
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
FORCEINLINE VOID WDF_DRIVER_CONFIG_INIT(_Out_ PWDF_DRIVER_CONFIG Config, _In_opt_ PFN_WDF_DRIVER_DEVICE_ADD EvtDriverDeviceAdd)
FORCEINLINE VOID WDF_OBJECT_ATTRIBUTES_INIT(_Out_ PWDF_OBJECT_ATTRIBUTES Attributes)
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
#define WDF_NO_OBJECT_ATTRIBUTES
NTSYSAPI NTSTATUS WINAPI RtlCheckRegistryKey(ULONG, PWSTR)
RtlInitUnicodeString & RoutineName