109 L"\\Control\\ServiceGroupOrder");
212 L"\\Control\\ServiceGroupOrder");
252 &KeyValueInformationGroupOrderList);
256 if (KeyValueInformation)
ExFreePool(KeyValueInformation);
262 (KeyValueInformationGroupOrderList->
DataLength))
266 KeyValueInformationGroupOrderList->
DataOffset);
271 KeyValueInformationGroupOrderList->
DataLength);
278 if (
Tag == *GroupOrder)
break;
286 ExFreePool(KeyValueInformationGroupOrderList);
339 HANDLE DeviceClassesHandle;
373 ParentHandle = EnumHandle;
409 DPRINT1(
"IoCreateDriverObject() failed\n");
423 DPRINT1(
"IoCreateDevice() failed\n");
440 DPRINT1(
"RtlCreateUnicodeString() failed\n");
NTSTATUS IopInitPlugPlayEvents(VOID)
PDEVICE_OBJECT PhysicalDeviceObject
PDEVICE_NODE IopRootDeviceNode
KEVENT PiEnumerationFinished
enum _INTERFACE_TYPE INTERFACE_TYPE
PNP_DEVNODE_STATE PiSetDevNodeState(_In_ PDEVICE_NODE DeviceNode, _In_ PNP_DEVNODE_STATE NewState)
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.
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
IN BOOLEAN OUT PSTR Buffer
NTSTATUS NTAPI IopMemInitialize(VOID)
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
INTERFACE_TYPE PnpDefaultInterfaceType
BOOLEAN PnPBootDriversLoaded
USHORT NTAPI PpInitGetGroupOrderIndex(IN HANDLE ServiceHandle)
#define DNF_NO_RESOURCE_REQUIRED
#define REGSTR_VAL_ROOT_DEVNODE
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Reserved_ ULONG _In_opt_ PUNICODE_STRING _In_ ULONG _Out_opt_ PULONG Disposition
KSPIN_LOCK IopDeviceActionLock
BOOLEAN PnPBootDriversInitialized
ARBITER_INSTANCE IopRootIrqArbiter
ARBITER_INSTANCE IopRootMemArbiter
NTSTATUS NTAPI IopCreateRegistryKeyEx(OUT PHANDLE Handle, IN HANDLE BaseHandle OPTIONAL, IN PUNICODE_STRING KeyName, IN ACCESS_MASK DesiredAccess, IN ULONG CreateOptions, OUT PULONG Disposition OPTIONAL)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
#define FILE_DEVICE_CONTROLLER
PDEVICE_NODE PipAllocateDeviceNode(IN PDEVICE_OBJECT PhysicalDeviceObject)
NTSTATUS NTAPI IopInitializePlugPlayServices(VOID)
#define REGSTR_KEY_ROOTENUM
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_ WDFDRIVER _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT Pdo
PDRIVER_EXTENSION DriverExtension
USHORT PiInitGroupOrderTableCount
struct _IOPNP_DEVICE_EXTENSION IOPNP_DEVICE_EXTENSION
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
LIST_ENTRY IopDeviceActionRequestList
#define DO_BUS_ENUMERATED_DEVICE
NTSTATUS NTAPI IoCreateDriver(_In_opt_ PUNICODE_STRING DriverName, _In_ PDRIVER_INITIALIZE InitializationFunction)
#define REG_CREATED_NEW_KEY
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
NTSTATUS NTAPI PnpRootDriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
#define REG_OPTION_NON_VOLATILE
ULONG CompatibleIdListSize
#define NT_SUCCESS(StatCode)
FORCEINLINE VOID ExInitializeFastMutex(_Out_ PFAST_MUTEX FastMutex)
NTSTATUS NTAPI IopPortInitialize(VOID)
NTSTATUS NTAPI IopIrqInitialize(VOID)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
#define STATUS_UNSUCCESSFUL
PDRIVER_OBJECT IopRootDriverObject
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSTATUS NTAPI IopInitializeArbiters(VOID)
#define ExAllocatePool(type, size)
NTSTATUS NTAPI PnpRegMultiSzToUnicodeStrings(IN PKEY_VALUE_FULL_INFORMATION KeyValueInformation, OUT PUNICODE_STRING *UnicodeStringList, OUT PULONG UnicodeStringCount)
ARBITER_INSTANCE IopRootPortArbiter
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
UNICODE_STRING InstancePath
NTSTATUS NTAPI IopBusNumberInitialize(VOID)
KSPIN_LOCK IopDeviceTreeLock
PDRIVER_ADD_DEVICE AddDevice
NTSTATUS NTAPI IopGetRegistryValue(IN HANDLE Handle, IN PWSTR ValueName, OUT PKEY_VALUE_FULL_INFORMATION *Information)
NTSTATUS NTAPI IopUpdateRootKey(VOID)
#define KeInitializeEvent(pEvt, foo, foo2)
NTSTATUS NTAPI IopOpenRegistryKeyEx(PHANDLE KeyHandle, HANDLE ParentKey, PUNICODE_STRING Name, ACCESS_MASK DesiredAccess)
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
PIO_BUS_TYPE_GUID_LIST PnpBusTypeGuidList
#define InitializeListHead(ListHead)
INTERFACE_TYPE NTAPI IopDetermineDefaultInterfaceType(VOID)
ARBITER_INSTANCE IopRootBusNumberArbiter
BOOLEAN NTAPI PnpRegSzToString(IN PWCHAR RegSzData, IN ULONG RegSzLength, OUT PUSHORT StringLength OPTIONAL)
NTSTATUS NTAPI IoCreateDevice(IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Exclusive, OUT PDEVICE_OBJECT *DeviceObject)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define RtlZeroMemory(Destination, Length)
PUNICODE_STRING PiInitGroupOrderTable
USHORT NTAPI PipGetDriverTagPriority(IN HANDLE ServiceHandle)
NTSYSAPI BOOLEAN NTAPI RtlEqualUnicodeString(PUNICODE_STRING String1, PUNICODE_STRING String2, BOOLEAN CaseInSensitive)
NTSTATUS NTAPI IopDmaInitialize(VOID)
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
ARBITER_INSTANCE IopRootDmaArbiter
struct _IOPNP_DEVICE_EXTENSION * PIOPNP_DEVICE_EXTENSION
NTSTATUS NTAPI PiInitCacheGroupInformation(VOID)
#define RTL_CONSTANT_STRING(s)