15#define HAS_CHILDREN(d) ((d)->children.next != &((d)->children))
16#define HAS_SIBLINGS(d) (((d)->parent) && ((d)->node.next != &(d)->parent->children))
17#define NODE_TO_DEVICE(n) (list_entry(n, struct acpi_device, node))
62 if (
Device->flags.unique_id && CurrentDevice->
flags.unique_id &&
66 DPRINT1(
"Detected duplicate device: %hs %hs\n",
Device->pnp.hardware_id,
Device->pnp.unique_id);
69 else if (!
Device->flags.unique_id && !CurrentDevice->
flags.unique_id)
72 DPRINT1(
"Detected duplicate device: %hs\n",
Device->pnp.hardware_id);
79 "======AcpiHandle: %p\n"
80 "======HardwareId: %s\n",
154 Device->flags.hardware_id)
int strcmp(const char *String1, const char *String2)
struct acpi_device * acpi_root
NTSTATUS Bus_PlugInDevice(struct acpi_device *Device, PFDO_DEVICE_DATA FdoData)
#define NODE_TO_DEVICE(n)
NTSTATUS ACPIEnumerateDevices(PFDO_DEVICE_DATA DeviceExtension)
VOID Bus_InitializePdo(PDEVICE_OBJECT Pdo, PFDO_DEVICE_DATA FdoData)
struct _PDO_DEVICE_DATA * PPDO_DEVICE_DATA
#define NT_SUCCESS(StatCode)
int acpi_bus_get_device(ACPI_HANDLE handle, struct acpi_device **device)
#define ExAllocatePoolWithTag(hernya, size, tag)
#define FILE_AUTOGENERATED_DEVICE_NAME
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)
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
#define FILE_DEVICE_CONTROLLER
COMMON_DEVICE_DATA Common
PDEVICE_OBJECT NextLowerDriver
struct _LIST_ENTRY * Flink
struct acpi_device_status status
struct acpi_device_pnp pnp
struct acpi_device_flags flags
#define RtlCopyMemory(Destination, Source, Length)
#define CONTAINING_RECORD(address, type, field)
#define STATUS_INSUFFICIENT_RESOURCES
static int Link(const char **args)
_Must_inspect_result_ _In_ WDFDEVICE Device