48 HANDLE CriticalDeviceKey, InstanceKey;
57 PWCHAR IdBuffer, OriginalIdBuffer;
64 Status = ZwQueryValueKey(InstanceKey,
76 Status = ZwQueryValueKey(InstanceKey,
99 if (HidLength > CidLength)
112 Status = ZwQueryValueKey(InstanceKey,
127 HidLength = PartialInfo->
DataLength - ((CidLength != 0) ?
sizeof(
WCHAR) : 0);
132 Status = ZwQueryValueKey(InstanceKey,
159 Status = ZwOpenKey(&CriticalDeviceKey,
183 Status = ZwEnumerateKey(CriticalDeviceKey,
205 Status = ZwEnumerateKey(CriticalDeviceKey,
218 ChildIdNameU.
Buffer = IdBuffer;
233 Status = ZwOpenKey(&ChildKeyHandle,
243 Status = ZwQueryValueKey(InstanceKey,
255 Status = ZwQueryValueKey(ChildKeyHandle,
279 Status = ZwQueryValueKey(ChildKeyHandle,
292 Status = ZwSetValueKey(InstanceKey,
306 Status = ZwQueryValueKey(ChildKeyHandle,
327 Status = ZwQueryValueKey(ChildKeyHandle,
342 Status = ZwSetValueKey(InstanceKey,
356 DPRINT(
"Installed service '%S' for critical device '%wZ'\n", PartialInfo->
Data, &ChildIdNameU);
360 DPRINT1(
"Installed NULL service for critical device '%wZ'\n", &ChildIdNameU);
384 IdBuffer += StringLength;
413 USHORT i = 0, FoundIndex = 0xFFFF;
421 while (i < PnpBusTypeGuidList->GuidCount)
495 sizeof(
Stack->Parameters));
541 DPRINT1(
"ZwOpenKey('%wZ') failed with status 0x%08lx\n", &EnumU,
Status);
549 while (Current <= Last)
551 if (Current != Last && *Current !=
L'\\')
611 HANDLE LogConfKey, ControlKey, DeviceParamsKey;
616 DPRINT(
"IopSetDeviceInstanceData() called\n");
625 Status = ZwCreateKey(&LogConfKey,
643 Status = ZwSetValueKey(LogConfKey,
654 DeviceNode->ResourceRequirements->ListSize != 0)
657 Status = ZwSetValueKey(LogConfKey,
670 Status = ZwQueryValueKey(InstanceKey,
679 ULONG DefaultConfigFlags = 0;
680 Status = ZwSetValueKey(InstanceKey,
685 sizeof(DefaultConfigFlags));
695 Status = ZwCreateKey(&ControlKey,
714 Status = ZwCreateKey(&DeviceParamsKey,
723 ULONG FirmwareIdentified = 1;
725 Status = ZwSetValueKey(DeviceParamsKey,
730 sizeof(FirmwareIdentified));
736 DPRINT(
"IopSetDeviceInstanceData() done\n");
764 ULONG KeyNameBufferLength;
776 if (
DeviceNode->Parent->InstancePath.Length == 0)
778 DPRINT1(
"Parent of %wZ has NULL Instance path, please report!\n",
788 if (!ParentIdPrefixInformation)
818 ParentIdPrefixInformation,
820 &KeyNameBufferLength);
823 if (ParentIdPrefixInformation->
Type !=
REG_SZ)
918 ULONG KeyDisposition, RootHandleIndex = 0,
i = 1, NestedCloseLevel = 0;
937 Status = ZwCreateKey(&HandleArray[
i],
949 HandleArray[0] =
NULL;
950 HandleArray[1] = RootHandle;
956 if (NestedCloseLevel > 1)
ZwClose(HandleArray[RootHandleIndex]);
963 HandleArray[
i] =
NULL;
980 HandleArray[RootHandleIndex],
982 Status = ZwCreateKey(&HandleArray[
i],
1011 if ((
p == pp) || (p1 == pp))
1019 if (NestedCloseLevel > 1)
ZwClose(HandleArray[RootHandleIndex]);
1179 if (Index < PnpBusTypeGuidList->GuidCount)
1279 FinalSize += PartialSize;
1282 FullDescriptor = (
PVOID)((
ULONG_PTR)FullDescriptor + PartialSize);
1373#define PIP_RETURN_DATA(x, y) {ReturnLength = x; Data = y; Status = STATUS_SUCCESS; break;}
1374#define PIP_REGISTRY_DATA(x, y) {ValueName = x; ValueType = y; break;}
1375#define PIP_UNIMPLEMENTED() {UNIMPLEMENTED_DBGBREAK(); break;}
1431 if ((
DeviceNode->ChildBusNumber & 0x80000000) == 0x80000000)
1440 DeviceInstanceName =
DeviceNode->InstancePath.Buffer;
1448 ASSERT(EnumeratorNameEnd);
1451 NullTerminate =
TRUE;
1455 DeviceInstanceName);
1504 NullTerminate =
TRUE;
1508 ObjectNameInfo->Name.Buffer);
1600 if (ObjectNameInfo)
ExFreePool(ObjectNameInfo);
1626 static WCHAR RootKeyName[] =
1627 L"\\Registry\\Machine\\System\\CurrentControlSet\\";
1628 static WCHAR ProfileKeyName[] =
1629 L"Hardware Profiles\\Current\\System\\CurrentControlSet\\";
1630 static WCHAR ClassKeyName[] =
L"Control\\Class\\";
1631 static WCHAR EnumKeyName[] =
L"Enum\\";
1632 static WCHAR DeviceParametersKeyName[] =
L"Device Parameters";
1634 PWSTR KeyNameBuffer;
1636 ULONG DriverKeyLength;
1641 DPRINT(
"IoOpenDeviceRegistryKey() called\n");
1645 DPRINT1(
"IoOpenDeviceRegistryKey(): got wrong params, exiting...\n");
1666 0,
NULL, &DriverKeyLength);
1682 if (KeyNameBuffer ==
NULL)
1687 KeyName.Buffer = KeyNameBuffer;
1703 DriverKeyLength, KeyNameBuffer +
1708 DPRINT1(
"Call to IoGetDeviceProperty() failed with Status 0x%08lx\n",
Status);
1731 DPRINT1(
"IoOpenDeviceRegistryKey(%wZ): Base key doesn't exist, exiting... (Status 0x%08lx)\n", &
KeyName,
Status);
_In_ PVOID _In_ ULONG _Out_ PVOID _In_ ULONG _Inout_ PULONG ReturnLength
#define OBJ_NAME_PATH_SEPARATOR
VOID NTAPI RtlInitializeGenericTableAvl(IN OUT PRTL_AVL_TABLE Table, IN PRTL_AVL_COMPARE_ROUTINE CompareRoutine, IN PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine, IN PRTL_AVL_FREE_ROUTINE FreeRoutine, IN PVOID TableContext)
DECLSPEC_NORETURN VOID NTAPI KeBugCheck(ULONG BugCheckCode)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define STATUS_NOT_SUPPORTED
#define STATUS_NOT_IMPLEMENTED
#define NT_SUCCESS(StatCode)
#define crc32(crc, buf, len)
static void cleanup(void)
#define ExAllocatePoolWithTag(hernya, size, tag)
NTSTATUS ExInitializeResourceLite(PULONG res)
#define RtlCompareMemory(s1, s2, l)
#define KeReleaseSpinLock(sl, irql)
NTSTATUS RtlAppendUnicodeToString(IN PUNICODE_STRING Str1, IN PWSTR Str2)
#define KeAcquireSpinLock(sl, irql)
#define ExAllocatePool(type, size)
_Must_inspect_result_ _In_ USHORT NewSize
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
VOID FASTCALL KeInitializeGuardedMutex(OUT PKGUARDED_MUTEX GuardedMutex)
#define RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE
BOOLEAN NTAPI HalTranslateBusAddress(IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress)
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
#define CmResourceTypeDeviceSpecific
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR CM_PARTIAL_RESOURCE_DESCRIPTOR
enum _INTERFACE_TYPE INTERFACE_TYPE
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define OBJ_KERNEL_HANDLE
#define OBJ_CASE_INSENSITIVE
NTSYSAPI NTSTATUS WINAPI RtlDuplicateUnicodeString(int, const UNICODE_STRING *, UNICODE_STRING *)
#define ExFreePoolWithTag(_P, _T)
static OUT PIO_STATUS_BLOCK IoStatusBlock
#define InitializeObjectAttributes(p, n, a, r, s)
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Reserved_ ULONG _In_opt_ PUNICODE_STRING _In_ ULONG _Out_opt_ PULONG Disposition
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
NTSYSAPI VOID NTAPI RtlCopyUnicodeString(PUNICODE_STRING DestinationString, PUNICODE_STRING SourceString)
@ KeyValueBasicInformation
@ KeyValuePartialInformation
@ KeyValueFullInformation
NTSYSAPI NTSTATUS NTAPI RtlAppendUnicodeStringToString(PUNICODE_STRING Destination, PUNICODE_STRING Source)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define KEY_CREATE_SUB_KEY
NTSYSAPI BOOLEAN NTAPI RtlEqualUnicodeString(PUNICODE_STRING String1, PUNICODE_STRING String2, BOOLEAN CaseInSensitive)
#define REG_OPTION_NON_VOLATILE
#define REG_RESOURCE_LIST
struct _OBJECT_NAME_INFORMATION OBJECT_NAME_INFORMATION
#define KEY_ENUMERATE_SUB_KEYS
#define REG_RESOURCE_REQUIREMENTS_LIST
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define REG_OPTION_VOLATILE
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define IopIsValidPhysicalDeviceObject(PhysicalDeviceObject)
PDEVICE_NODE FASTCALL IopGetDeviceNode(IN PDEVICE_OBJECT DeviceObject)
NTSTATUS NTAPI IopQueryDeviceCapabilities(PDEVICE_NODE DeviceNode, PDEVICE_CAPABILITIES DeviceCaps)
struct _IO_BUS_TYPE_GUID_LIST IO_BUS_TYPE_GUID_LIST
KSPIN_LOCK IopDeviceTreeLock
NTSTATUS IopSynchronousCall(IN PDEVICE_OBJECT DeviceObject, IN PIO_STACK_LOCATION IoStackLocation, OUT PVOID *Information)
VOID PiQueueDeviceAction(_In_ PDEVICE_OBJECT DeviceObject, _In_ DEVICE_ACTION Action, _In_opt_ PKEVENT CompletionEvent, _Out_opt_ NTSTATUS *CompletionStatus)
Queue a device operation to a worker thread.
NTSTATUS PiPerformSyncDeviceAction(_In_ PDEVICE_OBJECT DeviceObject, _In_ DEVICE_ACTION Action)
Perfom a device operation synchronously via PiQueueDeviceAction.
#define STATUS_INVALID_PARAMETER_2
#define STATUS_NO_MORE_ENTRIES
NTSTRSAFEVAPI RtlStringCbPrintfW(_Out_writes_bytes_(cbDest) _Always_(_Post_z_) NTSTRSAFE_PWSTR pszDest, _In_ size_t cbDest, _In_ _Printf_format_string_ NTSTRSAFE_PCWSTR pszFormat,...)
NTSTATUS NTAPI ObQueryNameString(IN PVOID Object, OUT POBJECT_NAME_INFORMATION ObjectNameInfo, IN ULONG Length, OUT PULONG ReturnLength)
NTSTATUS NTAPI IopOpenRegistryKeyEx(PHANDLE KeyHandle, HANDLE ParentKey, PUNICODE_STRING Name, ACCESS_MASK DesiredAccess)
ULONG ExpInitializationPhase
KGUARDED_MUTEX PpDeviceReferenceTableLock
BOOLEAN NTAPI IoTranslateBusAddress(IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress)
ULONG NTAPI PnpDetermineResourceListSize(IN PCM_RESOURCE_LIST ResourceList)
VOID NTAPI PiFreeGenericTableEntry(IN PRTL_AVL_TABLE Table, IN PVOID Buffer)
#define PIP_REGISTRY_DATA(x, y)
NTSTATUS NTAPI IoOpenDeviceRegistryKey(IN PDEVICE_OBJECT DeviceObject, IN ULONG DevInstKeyType, IN ACCESS_MASK DesiredAccess, OUT PHANDLE DevInstRegKey)
NTSTATUS NTAPI IopInitiatePnpIrp(IN PDEVICE_OBJECT DeviceObject, IN OUT PIO_STATUS_BLOCK IoStatusBlock, IN UCHAR MinorFunction, IN PIO_STACK_LOCATION Stack OPTIONAL)
NTSTATUS NTAPI IoGetDeviceProperty(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_REGISTRY_PROPERTY DeviceProperty, IN ULONG BufferLength, OUT PVOID PropertyBuffer, OUT PULONG ResultLength)
NTSTATUS IopSetDeviceInstanceData(HANDLE InstanceKey, PDEVICE_NODE DeviceNode)
BOOLEAN NTAPI PiInitPhase0(VOID)
RTL_AVL_TABLE PpDeviceReferenceTable
NTSTATUS IopGetParentIdPrefix(PDEVICE_NODE DeviceNode, PUNICODE_STRING ParentIdPrefix)
#define PIP_UNIMPLEMENTED()
NTSTATUS IopGetSystemPowerDeviceObject(PDEVICE_OBJECT *DeviceObject)
NTSTATUS NTAPI IopCreateDeviceKeyPath(IN PCUNICODE_STRING RegistryPath, IN ULONG CreateOptions, OUT PHANDLE Handle)
USHORT NTAPI IopGetBusTypeGuidIndex(LPGUID BusTypeGuid)
NTSTATUS NTAPI IopGetRegistryValue(IN HANDLE Handle, IN PWSTR ValueName, OUT PKEY_VALUE_FULL_INFORMATION *Information)
NTSTATUS NTAPI PnpDeviceObjectToDeviceInstance(IN PDEVICE_OBJECT DeviceObject, IN PHANDLE DeviceInstanceHandle, IN ACCESS_MASK DesiredAccess)
VOID NTAPI IoInvalidateDeviceRelations(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_RELATION_TYPE Type)
NTSTATUS NTAPI PiGetDeviceRegistryProperty(IN PDEVICE_OBJECT DeviceObject, IN ULONG ValueType, IN PWSTR ValueName, IN PWSTR KeyName, OUT PVOID Buffer, IN PULONG BufferLength)
ERESOURCE PpRegistryDeviceResource
VOID IopFixupDeviceId(PWCHAR String)
PVOID NTAPI PiAllocateGenericTableEntry(IN PRTL_AVL_TABLE Table, IN CLONG ByteSize)
NTSTATUS NTAPI IopCreateRegistryKeyEx(OUT PHANDLE Handle, IN HANDLE RootHandle OPTIONAL, IN PUNICODE_STRING KeyName, IN ACCESS_MASK DesiredAccess, IN ULONG CreateOptions, OUT PULONG Disposition OPTIONAL)
VOID NTAPI IoInvalidateDeviceState(IN PDEVICE_OBJECT DeviceObject)
PIO_BUS_TYPE_GUID_LIST PnpBusTypeGuidList
NTSTATUS NTAPI IoSynchronousInvalidateDeviceRelations(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_RELATION_TYPE Type)
PDRIVER_OBJECT IopRootDriverObject
BOOLEAN NTAPI PpInitSystem(VOID)
VOID NTAPI PpInitializeDeviceReferenceTable(VOID)
VOID NTAPI IopInstallCriticalDevice(PDEVICE_NODE DeviceNode)
#define PIP_RETURN_DATA(x, y)
NTSTATUS NTAPI PnpBusTypeGuidGet(IN USHORT Index, IN LPGUID BusTypeGuid)
RTL_GENERIC_COMPARE_RESULTS NTAPI PiCompareInstancePath(IN PRTL_AVL_TABLE Table, IN PVOID FirstStruct, IN PVOID SecondStruct)
PDEVICE_NODE PopSystemPowerDeviceNode
#define REGSTR_VAL_UI_NUMBER
#define REGSTR_VAL_DEVDESC
#define REGSTR_VAL_CLASSGUID
#define REGSTR_VAL_COMPATIBLEIDS
#define REGSTR_VAL_BOOTCONFIG
#define REGSTR_VAL_DRIVER
#define REGSTR_VAL_FRIENDLYNAME
#define REGSTR_VAL_HARDWAREID
#define REGSTR_VAL_LOCATION_INFORMATION
#define REGSTR_VAL_CONFIGFLAGS
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
_Check_return_ _CRTIMP int __cdecl _wcsnicmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
#define STATUS_BUFFER_TOO_SMALL
#define STATUS_BUFFER_OVERFLOW
PULONG MinorVersion OPTIONAL
CM_PARTIAL_RESOURCE_LIST PartialResourceList
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@393 u
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@393::@402 DeviceSpecificData
CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]
PDEVICE_OBJECT PhysicalDeviceObject
union _IO_STACK_LOCATION::@1584 Parameters
#define RTL_CONSTANT_STRING(s)
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define STATUS_INVALID_DEVICE_REQUEST
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
#define STATUS_INFO_LENGTH_MISMATCH
#define STATUS_INSUFFICIENT_RESOURCES
#define STATUS_OBJECT_NAME_NOT_FOUND
#define PLUGPLAY_REGKEY_DRIVER
_In_ ULONG _In_ ULONG KeyNameLength
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID PropertyBuffer
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
_In_ UCHAR _In_ UCHAR MinorFunction
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY Policy
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG CreateOptions
_Must_inspect_result_ _In_opt_ WDFKEY ParentKey
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG _Out_opt_ PULONG _Out_opt_ PULONG ValueType
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
_Must_inspect_result_ _In_ WDFCMRESLIST List
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber
#define PLUGPLAY_REGKEY_CURRENT_HWPROFILE
_In_ ULONG _In_ PHYSICAL_ADDRESS BusAddress
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG _Out_ PPHYSICAL_ADDRESS TranslatedAddress
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG AddressSpace
_In_ ULONG _In_ ACCESS_MASK _Out_ PHANDLE DevInstRegKey
_In_ ULONG DevInstKeyType
#define PLUGPLAY_REGKEY_DEVICE
enum _DEVICE_REMOVAL_POLICY DEVICE_REMOVAL_POLICY
@ DevicePropertyCompatibleIDs
@ DevicePropertyEnumeratorName
@ DevicePropertyBootConfiguration
@ DevicePropertyResourceRequirements
@ DevicePropertyDriverKeyName
@ DevicePropertyInstallState
@ DevicePropertyClassGuid
@ DevicePropertyBusNumber
@ DevicePropertyBootConfigurationTranslated
@ DevicePropertyRemovalPolicy
@ DevicePropertyPhysicalDeviceObjectName
@ DevicePropertyLegacyBusType
@ DevicePropertyAllocatedResources
@ DevicePropertyManufacturer
@ DevicePropertyClassName
@ DevicePropertyFriendlyName
@ DevicePropertyContainerID
@ DevicePropertyLocationInformation
@ DevicePropertyHardwareID
@ DevicePropertyBusTypeGuid
@ DevicePropertyDeviceDescription
enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
RTL_AVL_FREE_ROUTINE * PRTL_AVL_FREE_ROUTINE
_IRQL_requires_same_ _In_ PVOID _In_ PVOID SecondStruct
RTL_AVL_ALLOCATE_ROUTINE * PRTL_AVL_ALLOCATE_ROUTINE
_IRQL_requires_same_ _In_ CLONG ByteSize
_IRQL_requires_same_ _In_ PVOID FirstStruct
RTL_AVL_COMPARE_ROUTINE * PRTL_AVL_COMPARE_ROUTINE
enum _RTL_GENERIC_COMPARE_RESULTS RTL_GENERIC_COMPARE_RESULTS