}
status = STATUS_SUCCESS;// We must not fail this IRP.
break;
+
+ case IRP_MN_REMOVE_DEVICE:
+ //
+ // We handle REMOVE_DEVICE just like STOP_DEVICE. This is because
+ // the device is still physically present (or at least we don't know any better)
+ // so we have to retain the PDO after stopping and removing power from it.
+ //
+ if (DeviceData->InterfaceName.Length != 0)
+ IoSetDeviceInterfaceState(&DeviceData->InterfaceName, FALSE);
+
+ if (DeviceData->AcpiHandle && acpi_bus_power_manageable(DeviceData->AcpiHandle) &&
+ !ACPI_SUCCESS(acpi_bus_set_power(DeviceData->AcpiHandle, ACPI_STATE_D3)))
+ {
+ DPRINT1("Device %x failed to enter D3!\n", DeviceData->AcpiHandle);
+ state.DeviceState = PowerDeviceD3;
+ PoSetPowerState(DeviceData->Common.Self, DevicePowerState, state);
+ DeviceData->Common.DevicePowerState = PowerDeviceD3;
+ }
+
+ SET_NEW_PNP_STATE(DeviceData->Common, Stopped);
+ status = STATUS_SUCCESS;
+ break;
+
+ case IRP_MN_QUERY_REMOVE_DEVICE:
+ SET_NEW_PNP_STATE(DeviceData->Common, RemovalPending);
+ status = STATUS_SUCCESS;
+ break;
+
+ case IRP_MN_CANCEL_REMOVE_DEVICE:
+ if (RemovalPending == DeviceData->Common.DevicePnPState)
+ {
+ RESTORE_PREVIOUS_PNP_STATE(DeviceData->Common);
+ }
+ status = STATUS_SUCCESS;
+ break;
+
case IRP_MN_QUERY_CAPABILITIES:
//
NT_ASSERT(length * sizeof(WCHAR) <= sizeof(temp));
- buffer = ExAllocatePoolWithTag (PagedPool, length * sizeof(WCHAR), 'IPCA');
+ buffer = ExAllocatePoolWithTag(PagedPool, length * sizeof(WCHAR), 'IpcA');
if (!buffer) {
status = STATUS_INSUFFICIENT_RESOURCES;
NT_ASSERT(length * sizeof(WCHAR) <= sizeof(temp));
- buffer = ExAllocatePoolWithTag (PagedPool, length * sizeof (WCHAR), 'IPCA');
+ buffer = ExAllocatePoolWithTag(PagedPool, length * sizeof(WCHAR), 'IpcA');
if (!buffer) {
status = STATUS_INSUFFICIENT_RESOURCES;
break;
NT_ASSERT(length * sizeof(WCHAR) <= sizeof(temp));
- buffer = ExAllocatePoolWithTag (PagedPool, length * sizeof(WCHAR), 'IPCA');
+ buffer = ExAllocatePoolWithTag(PagedPool, length * sizeof(WCHAR), 'IpcA');
if (!buffer) {
status = STATUS_INSUFFICIENT_RESOURCES;
RtlCopyMemory (buffer, src, length * sizeof(WCHAR));
Irp->IoStatus.Information = (ULONG_PTR) buffer;
DPRINT("BusQueryHardwareIDs: %ls\n",buffer);
+ status = STATUS_SUCCESS;
break;
case BusQueryCompatibleIDs:
NT_ASSERT(length * sizeof(WCHAR) <= sizeof(temp));
- buffer = ExAllocatePoolWithTag (PagedPool, length * sizeof(WCHAR), 'IPCA');
+ buffer = ExAllocatePoolWithTag(PagedPool, length * sizeof(WCHAR), 'IpcA');
if (!buffer)
{
status = STATUS_INSUFFICIENT_RESOURCES;
else
Temp = L"Other ACPI device";
- Buffer = ExAllocatePoolWithTag (PagedPool, (wcslen(Temp) + 1) * sizeof(WCHAR), 'IPCA');
+ Buffer = ExAllocatePoolWithTag(PagedPool, (wcslen(Temp) + 1) * sizeof(WCHAR), 'IpcA');
if (!Buffer) {
status = STATUS_INSUFFICIENT_RESOURCES;
DPRINT("Found PCI root hub: %d\n", BusNumber);
ResourceListSize = sizeof(CM_RESOURCE_LIST);
- ResourceList = (PCM_RESOURCE_LIST)ExAllocatePoolWithTag(PagedPool, ResourceListSize, 'IPCA');
+ ResourceList = ExAllocatePoolWithTag(PagedPool, ResourceListSize, 'RpcA');
if (!ResourceList)
return STATUS_INSUFFICIENT_RESOURCES;
return Irp->IoStatus.Status;
}
- Buffer.Pointer = ExAllocatePoolWithTag(PagedPool, Buffer.Length, 'IPCA');
+ Buffer.Pointer = ExAllocatePoolWithTag(PagedPool, Buffer.Length, 'BpcA');
if (!Buffer.Pointer)
return STATUS_INSUFFICIENT_RESOURCES;
/* Allocate memory */
ResourceListSize = sizeof(CM_RESOURCE_LIST) + sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR) * (NumberOfResources - 1);
- ResourceList = (PCM_RESOURCE_LIST)ExAllocatePoolWithTag(PagedPool, ResourceListSize, 'IPCA');
+ ResourceList = ExAllocatePoolWithTag(PagedPool, ResourceListSize, 'RpcA');
if (!ResourceList)
{
- ExFreePoolWithTag(Buffer.Pointer, 'IPCA');
+ ExFreePoolWithTag(Buffer.Pointer, 'BpcA');
return STATUS_INSUFFICIENT_RESOURCES;
}
ResourceList->Count = 1;
ResourceDescriptor->Type = CmResourceTypeBusNumber;
ResourceDescriptor->ShareDisposition = CmResourceShareShared;
ResourceDescriptor->Flags = 0;
- ResourceDescriptor->u.BusNumber.Start = addr16_data->Minimum;
- ResourceDescriptor->u.BusNumber.Length = addr16_data->AddressLength;
+ ResourceDescriptor->u.BusNumber.Start = addr16_data->Address.Minimum;
+ ResourceDescriptor->u.BusNumber.Length = addr16_data->Address.AddressLength;
}
else if (addr16_data->ResourceType == ACPI_IO_RANGE)
{
ResourceDescriptor->Flags = CM_RESOURCE_PORT_IO;
if (addr16_data->Decode == ACPI_POS_DECODE)
ResourceDescriptor->Flags |= CM_RESOURCE_PORT_POSITIVE_DECODE;
- ResourceDescriptor->u.Port.Start.QuadPart = addr16_data->Minimum;
- ResourceDescriptor->u.Port.Length = addr16_data->AddressLength;
+ ResourceDescriptor->u.Port.Start.QuadPart = addr16_data->Address.Minimum;
+ ResourceDescriptor->u.Port.Length = addr16_data->Address.AddressLength;
}
else
{
case ACPI_WRITE_COMBINING_MEMORY: ResourceDescriptor->Flags |= CM_RESOURCE_MEMORY_COMBINEDWRITE; break;
case ACPI_PREFETCHABLE_MEMORY: ResourceDescriptor->Flags |= CM_RESOURCE_MEMORY_PREFETCHABLE; break;
}
- ResourceDescriptor->u.Memory.Start.QuadPart = addr16_data->Minimum;
- ResourceDescriptor->u.Memory.Length = addr16_data->AddressLength;
+ ResourceDescriptor->u.Memory.Start.QuadPart = addr16_data->Address.Minimum;
+ ResourceDescriptor->u.Memory.Length = addr16_data->Address.AddressLength;
}
ResourceDescriptor++;
break;
ResourceDescriptor->Type = CmResourceTypeBusNumber;
ResourceDescriptor->ShareDisposition = CmResourceShareShared;
ResourceDescriptor->Flags = 0;
- ResourceDescriptor->u.BusNumber.Start = addr32_data->Minimum;
- ResourceDescriptor->u.BusNumber.Length = addr32_data->AddressLength;
+ ResourceDescriptor->u.BusNumber.Start = addr32_data->Address.Minimum;
+ ResourceDescriptor->u.BusNumber.Length = addr32_data->Address.AddressLength;
}
else if (addr32_data->ResourceType == ACPI_IO_RANGE)
{
ResourceDescriptor->Flags = CM_RESOURCE_PORT_IO;
if (addr32_data->Decode == ACPI_POS_DECODE)
ResourceDescriptor->Flags |= CM_RESOURCE_PORT_POSITIVE_DECODE;
- ResourceDescriptor->u.Port.Start.QuadPart = addr32_data->Minimum;
- ResourceDescriptor->u.Port.Length = addr32_data->AddressLength;
+ ResourceDescriptor->u.Port.Start.QuadPart = addr32_data->Address.Minimum;
+ ResourceDescriptor->u.Port.Length = addr32_data->Address.AddressLength;
}
else
{
case ACPI_WRITE_COMBINING_MEMORY: ResourceDescriptor->Flags |= CM_RESOURCE_MEMORY_COMBINEDWRITE; break;
case ACPI_PREFETCHABLE_MEMORY: ResourceDescriptor->Flags |= CM_RESOURCE_MEMORY_PREFETCHABLE; break;
}
- ResourceDescriptor->u.Memory.Start.QuadPart = addr32_data->Minimum;
- ResourceDescriptor->u.Memory.Length = addr32_data->AddressLength;
+ ResourceDescriptor->u.Memory.Start.QuadPart = addr32_data->Address.Minimum;
+ ResourceDescriptor->u.Memory.Length = addr32_data->Address.AddressLength;
}
ResourceDescriptor++;
break;
ResourceDescriptor->Type = CmResourceTypeBusNumber;
ResourceDescriptor->ShareDisposition = CmResourceShareShared;
ResourceDescriptor->Flags = 0;
- ResourceDescriptor->u.BusNumber.Start = (ULONG)addr64_data->Minimum;
- ResourceDescriptor->u.BusNumber.Length = addr64_data->AddressLength;
+ ResourceDescriptor->u.BusNumber.Start = (ULONG)addr64_data->Address.Minimum;
+ ResourceDescriptor->u.BusNumber.Length = addr64_data->Address.AddressLength;
}
else if (addr64_data->ResourceType == ACPI_IO_RANGE)
{
ResourceDescriptor->Flags = CM_RESOURCE_PORT_IO;
if (addr64_data->Decode == ACPI_POS_DECODE)
ResourceDescriptor->Flags |= CM_RESOURCE_PORT_POSITIVE_DECODE;
- ResourceDescriptor->u.Port.Start.QuadPart = addr64_data->Minimum;
- ResourceDescriptor->u.Port.Length = addr64_data->AddressLength;
+ ResourceDescriptor->u.Port.Start.QuadPart = addr64_data->Address.Minimum;
+ ResourceDescriptor->u.Port.Length = addr64_data->Address.AddressLength;
}
else
{
case ACPI_WRITE_COMBINING_MEMORY: ResourceDescriptor->Flags |= CM_RESOURCE_MEMORY_COMBINEDWRITE; break;
case ACPI_PREFETCHABLE_MEMORY: ResourceDescriptor->Flags |= CM_RESOURCE_MEMORY_PREFETCHABLE; break;
}
- ResourceDescriptor->u.Memory.Start.QuadPart = addr64_data->Minimum;
- ResourceDescriptor->u.Memory.Length = addr64_data->AddressLength;
+ ResourceDescriptor->u.Memory.Start.QuadPart = addr64_data->Address.Minimum;
+ ResourceDescriptor->u.Memory.Length = addr64_data->Address.AddressLength;
}
ResourceDescriptor++;
break;
ResourceDescriptor->Type = CmResourceTypeBusNumber;
ResourceDescriptor->ShareDisposition = CmResourceShareShared;
ResourceDescriptor->Flags = 0;
- ResourceDescriptor->u.BusNumber.Start = (ULONG)addr64_data->Minimum;
- ResourceDescriptor->u.BusNumber.Length = addr64_data->AddressLength;
+ ResourceDescriptor->u.BusNumber.Start = (ULONG)addr64_data->Address.Minimum;
+ ResourceDescriptor->u.BusNumber.Length = addr64_data->Address.AddressLength;
}
else if (addr64_data->ResourceType == ACPI_IO_RANGE)
{
ResourceDescriptor->Flags = CM_RESOURCE_PORT_IO;
if (addr64_data->Decode == ACPI_POS_DECODE)
ResourceDescriptor->Flags |= CM_RESOURCE_PORT_POSITIVE_DECODE;
- ResourceDescriptor->u.Port.Start.QuadPart = addr64_data->Minimum;
- ResourceDescriptor->u.Port.Length = addr64_data->AddressLength;
+ ResourceDescriptor->u.Port.Start.QuadPart = addr64_data->Address.Minimum;
+ ResourceDescriptor->u.Port.Length = addr64_data->Address.AddressLength;
}
else
{
case ACPI_WRITE_COMBINING_MEMORY: ResourceDescriptor->Flags |= CM_RESOURCE_MEMORY_COMBINEDWRITE; break;
case ACPI_PREFETCHABLE_MEMORY: ResourceDescriptor->Flags |= CM_RESOURCE_MEMORY_PREFETCHABLE; break;
}
- ResourceDescriptor->u.Memory.Start.QuadPart = addr64_data->Minimum;
- ResourceDescriptor->u.Memory.Length = addr64_data->AddressLength;
+ ResourceDescriptor->u.Memory.Start.QuadPart = addr64_data->Address.Minimum;
+ ResourceDescriptor->u.Memory.Length = addr64_data->Address.AddressLength;
}
ResourceDescriptor++;
break;
resource = ACPI_NEXT_RESOURCE(resource);
}
- ExFreePoolWithTag(Buffer.Pointer, 'IPCA');
+ ExFreePoolWithTag(Buffer.Pointer, 'BpcA');
Irp->IoStatus.Information = (ULONG_PTR)ResourceList;
return STATUS_SUCCESS;
}
break;
}
- Buffer.Pointer = ExAllocatePoolWithTag(PagedPool, Buffer.Length, 'IPCA');
+ Buffer.Pointer = ExAllocatePoolWithTag(PagedPool, Buffer.Length, 'BpcA');
if (!Buffer.Pointer)
return STATUS_INSUFFICIENT_RESOURCES;
}
RequirementsListSize = sizeof(IO_RESOURCE_REQUIREMENTS_LIST) + sizeof(IO_RESOURCE_DESCRIPTOR) * (NumberOfResources - 1);
- RequirementsList = (PIO_RESOURCE_REQUIREMENTS_LIST)ExAllocatePoolWithTag(PagedPool, RequirementsListSize, 'IPCA');
+ RequirementsList = ExAllocatePoolWithTag(PagedPool, RequirementsListSize, 'RpcA');
if (!RequirementsList)
{
- ExFreePoolWithTag(Buffer.Pointer, 'IPCA');
+ ExFreePoolWithTag(Buffer.Pointer, 'BpcA');
return STATUS_INSUFFICIENT_RESOURCES;
}
RequirementsList->ListSize = RequirementsListSize;
RequirementDescriptor->Type = CmResourceTypeBusNumber;
RequirementDescriptor->ShareDisposition = CmResourceShareShared;
RequirementDescriptor->Flags = 0;
- RequirementDescriptor->u.BusNumber.MinBusNumber = addr16_data->Minimum;
- RequirementDescriptor->u.BusNumber.MaxBusNumber = addr16_data->Maximum + addr16_data->AddressLength - 1;
- RequirementDescriptor->u.BusNumber.Length = addr16_data->AddressLength;
+ RequirementDescriptor->u.BusNumber.MinBusNumber = addr16_data->Address.Minimum;
+ RequirementDescriptor->u.BusNumber.MaxBusNumber = addr16_data->Address.Maximum + addr16_data->Address.AddressLength - 1;
+ RequirementDescriptor->u.BusNumber.Length = addr16_data->Address.AddressLength;
}
else if (addr16_data->ResourceType == ACPI_IO_RANGE)
{
RequirementDescriptor->Flags = CM_RESOURCE_PORT_IO;
if (addr16_data->Decode == ACPI_POS_DECODE)
RequirementDescriptor->Flags |= CM_RESOURCE_PORT_POSITIVE_DECODE;
- RequirementDescriptor->u.Port.MinimumAddress.QuadPart = addr16_data->Minimum;
- RequirementDescriptor->u.Port.MaximumAddress.QuadPart = addr16_data->Maximum + addr16_data->AddressLength - 1;
- RequirementDescriptor->u.Port.Length = addr16_data->AddressLength;
+ RequirementDescriptor->u.Port.MinimumAddress.QuadPart = addr16_data->Address.Minimum;
+ RequirementDescriptor->u.Port.MaximumAddress.QuadPart = addr16_data->Address.Maximum + addr16_data->Address.AddressLength - 1;
+ RequirementDescriptor->u.Port.Length = addr16_data->Address.AddressLength;
}
else
{
case ACPI_WRITE_COMBINING_MEMORY: RequirementDescriptor->Flags |= CM_RESOURCE_MEMORY_COMBINEDWRITE; break;
case ACPI_PREFETCHABLE_MEMORY: RequirementDescriptor->Flags |= CM_RESOURCE_MEMORY_PREFETCHABLE; break;
}
- RequirementDescriptor->u.Memory.MinimumAddress.QuadPart = addr16_data->Minimum;
- RequirementDescriptor->u.Memory.MaximumAddress.QuadPart = addr16_data->Maximum + addr16_data->AddressLength - 1;
- RequirementDescriptor->u.Memory.Length = addr16_data->AddressLength;
+ RequirementDescriptor->u.Memory.MinimumAddress.QuadPart = addr16_data->Address.Minimum;
+ RequirementDescriptor->u.Memory.MaximumAddress.QuadPart = addr16_data->Address.Maximum + addr16_data->Address.AddressLength - 1;
+ RequirementDescriptor->u.Memory.Length = addr16_data->Address.AddressLength;
}
RequirementDescriptor++;
break;
RequirementDescriptor->Type = CmResourceTypeBusNumber;
RequirementDescriptor->ShareDisposition = CmResourceShareShared;
RequirementDescriptor->Flags = 0;
- RequirementDescriptor->u.BusNumber.MinBusNumber = addr32_data->Minimum;
- RequirementDescriptor->u.BusNumber.MaxBusNumber = addr32_data->Maximum + addr32_data->AddressLength - 1;
- RequirementDescriptor->u.BusNumber.Length = addr32_data->AddressLength;
+ RequirementDescriptor->u.BusNumber.MinBusNumber = addr32_data->Address.Minimum;
+ RequirementDescriptor->u.BusNumber.MaxBusNumber = addr32_data->Address.Maximum + addr32_data->Address.AddressLength - 1;
+ RequirementDescriptor->u.BusNumber.Length = addr32_data->Address.AddressLength;
}
else if (addr32_data->ResourceType == ACPI_IO_RANGE)
{
RequirementDescriptor->Flags = CM_RESOURCE_PORT_IO;
if (addr32_data->Decode == ACPI_POS_DECODE)
RequirementDescriptor->Flags |= CM_RESOURCE_PORT_POSITIVE_DECODE;
- RequirementDescriptor->u.Port.MinimumAddress.QuadPart = addr32_data->Minimum;
- RequirementDescriptor->u.Port.MaximumAddress.QuadPart = addr32_data->Maximum + addr32_data->AddressLength - 1;
- RequirementDescriptor->u.Port.Length = addr32_data->AddressLength;
+ RequirementDescriptor->u.Port.MinimumAddress.QuadPart = addr32_data->Address.Minimum;
+ RequirementDescriptor->u.Port.MaximumAddress.QuadPart = addr32_data->Address.Maximum + addr32_data->Address.AddressLength - 1;
+ RequirementDescriptor->u.Port.Length = addr32_data->Address.AddressLength;
}
else
{
case ACPI_WRITE_COMBINING_MEMORY: RequirementDescriptor->Flags |= CM_RESOURCE_MEMORY_COMBINEDWRITE; break;
case ACPI_PREFETCHABLE_MEMORY: RequirementDescriptor->Flags |= CM_RESOURCE_MEMORY_PREFETCHABLE; break;
}
- RequirementDescriptor->u.Memory.MinimumAddress.QuadPart = addr32_data->Minimum;
- RequirementDescriptor->u.Memory.MaximumAddress.QuadPart = addr32_data->Maximum + addr32_data->AddressLength - 1;
- RequirementDescriptor->u.Memory.Length = addr32_data->AddressLength;
+ RequirementDescriptor->u.Memory.MinimumAddress.QuadPart = addr32_data->Address.Minimum;
+ RequirementDescriptor->u.Memory.MaximumAddress.QuadPart = addr32_data->Address.Maximum + addr32_data->Address.AddressLength - 1;
+ RequirementDescriptor->u.Memory.Length = addr32_data->Address.AddressLength;
}
RequirementDescriptor++;
break;
RequirementDescriptor->Type = CmResourceTypeBusNumber;
RequirementDescriptor->ShareDisposition = CmResourceShareShared;
RequirementDescriptor->Flags = 0;
- RequirementDescriptor->u.BusNumber.MinBusNumber = (ULONG)addr64_data->Minimum;
- RequirementDescriptor->u.BusNumber.MaxBusNumber = (ULONG)addr64_data->Maximum + addr64_data->AddressLength - 1;
- RequirementDescriptor->u.BusNumber.Length = addr64_data->AddressLength;
+ RequirementDescriptor->u.BusNumber.MinBusNumber = (ULONG)addr64_data->Address.Minimum;
+ RequirementDescriptor->u.BusNumber.MaxBusNumber = (ULONG)addr64_data->Address.Maximum + addr64_data->Address.AddressLength - 1;
+ RequirementDescriptor->u.BusNumber.Length = addr64_data->Address.AddressLength;
}
else if (addr64_data->ResourceType == ACPI_IO_RANGE)
{
RequirementDescriptor->Flags = CM_RESOURCE_PORT_IO;
if (addr64_data->Decode == ACPI_POS_DECODE)
RequirementDescriptor->Flags |= CM_RESOURCE_PORT_POSITIVE_DECODE;
- RequirementDescriptor->u.Port.MinimumAddress.QuadPart = addr64_data->Minimum;
- RequirementDescriptor->u.Port.MaximumAddress.QuadPart = addr64_data->Maximum + addr64_data->AddressLength - 1;
- RequirementDescriptor->u.Port.Length = addr64_data->AddressLength;
+ RequirementDescriptor->u.Port.MinimumAddress.QuadPart = addr64_data->Address.Minimum;
+ RequirementDescriptor->u.Port.MaximumAddress.QuadPart = addr64_data->Address.Maximum + addr64_data->Address.AddressLength - 1;
+ RequirementDescriptor->u.Port.Length = addr64_data->Address.AddressLength;
}
else
{
case ACPI_WRITE_COMBINING_MEMORY: RequirementDescriptor->Flags |= CM_RESOURCE_MEMORY_COMBINEDWRITE; break;
case ACPI_PREFETCHABLE_MEMORY: RequirementDescriptor->Flags |= CM_RESOURCE_MEMORY_PREFETCHABLE; break;
}
- RequirementDescriptor->u.Memory.MinimumAddress.QuadPart = addr64_data->Minimum;
- RequirementDescriptor->u.Memory.MaximumAddress.QuadPart = addr64_data->Maximum + addr64_data->AddressLength - 1;
- RequirementDescriptor->u.Memory.Length = addr64_data->AddressLength;
+ RequirementDescriptor->u.Memory.MinimumAddress.QuadPart = addr64_data->Address.Minimum;
+ RequirementDescriptor->u.Memory.MaximumAddress.QuadPart = addr64_data->Address.Maximum + addr64_data->Address.AddressLength - 1;
+ RequirementDescriptor->u.Memory.Length = addr64_data->Address.AddressLength;
}
RequirementDescriptor++;
break;
RequirementDescriptor->Type = CmResourceTypeBusNumber;
RequirementDescriptor->ShareDisposition = CmResourceShareShared;
RequirementDescriptor->Flags = 0;
- RequirementDescriptor->u.BusNumber.MinBusNumber = (ULONG)addr64_data->Minimum;
- RequirementDescriptor->u.BusNumber.MaxBusNumber = (ULONG)addr64_data->Maximum + addr64_data->AddressLength - 1;
- RequirementDescriptor->u.BusNumber.Length = addr64_data->AddressLength;
+ RequirementDescriptor->u.BusNumber.MinBusNumber = (ULONG)addr64_data->Address.Minimum;
+ RequirementDescriptor->u.BusNumber.MaxBusNumber = (ULONG)addr64_data->Address.Maximum + addr64_data->Address.AddressLength - 1;
+ RequirementDescriptor->u.BusNumber.Length = addr64_data->Address.AddressLength;
}
else if (addr64_data->ResourceType == ACPI_IO_RANGE)
{
RequirementDescriptor->Flags = CM_RESOURCE_PORT_IO;
if (addr64_data->Decode == ACPI_POS_DECODE)
RequirementDescriptor->Flags |= CM_RESOURCE_PORT_POSITIVE_DECODE;
- RequirementDescriptor->u.Port.MinimumAddress.QuadPart = addr64_data->Minimum;
- RequirementDescriptor->u.Port.MaximumAddress.QuadPart = addr64_data->Maximum + addr64_data->AddressLength - 1;
- RequirementDescriptor->u.Port.Length = addr64_data->AddressLength;
+ RequirementDescriptor->u.Port.MinimumAddress.QuadPart = addr64_data->Address.Minimum;
+ RequirementDescriptor->u.Port.MaximumAddress.QuadPart = addr64_data->Address.Maximum + addr64_data->Address.AddressLength - 1;
+ RequirementDescriptor->u.Port.Length = addr64_data->Address.AddressLength;
}
else
{
case ACPI_WRITE_COMBINING_MEMORY: RequirementDescriptor->Flags |= CM_RESOURCE_MEMORY_COMBINEDWRITE; break;
case ACPI_PREFETCHABLE_MEMORY: RequirementDescriptor->Flags |= CM_RESOURCE_MEMORY_PREFETCHABLE; break;
}
- RequirementDescriptor->u.Memory.MinimumAddress.QuadPart = addr64_data->Minimum;
- RequirementDescriptor->u.Memory.MaximumAddress.QuadPart = addr64_data->Maximum + addr64_data->AddressLength - 1;
- RequirementDescriptor->u.Memory.Length = addr64_data->AddressLength;
+ RequirementDescriptor->u.Memory.MinimumAddress.QuadPart = addr64_data->Address.Minimum;
+ RequirementDescriptor->u.Memory.MaximumAddress.QuadPart = addr64_data->Address.Maximum + addr64_data->Address.AddressLength - 1;
+ RequirementDescriptor->u.Memory.Length = addr64_data->Address.AddressLength;
}
RequirementDescriptor++;
break;
}
resource = ACPI_NEXT_RESOURCE(resource);
}
- ExFreePoolWithTag(Buffer.Pointer, 'IPCA');
+ ExFreePoolWithTag(Buffer.Pointer, 'BpcA');
Irp->IoStatus.Information = (ULONG_PTR)RequirementsList;
ASSERTMSG("Someone above is handling TargetDeviceRelation", !deviceRelations);
}
- deviceRelations = (PDEVICE_RELATIONS)
- ExAllocatePoolWithTag (PagedPool,
- sizeof(DEVICE_RELATIONS),
- 'IPCA');
+ deviceRelations = ExAllocatePoolWithTag(PagedPool,
+ sizeof(DEVICE_RELATIONS),
+ 'IpcA');
if (!deviceRelations) {
status = STATUS_INSUFFICIENT_RESOURCES;
break;
PAGED_CODE ();
- busInfo = ExAllocatePoolWithTag (PagedPool, sizeof(PNP_BUS_INFORMATION),
- 'IPCA');
+ busInfo = ExAllocatePoolWithTag(PagedPool,
+ sizeof(PNP_BUS_INFORMATION),
+ 'IpcA');
if (busInfo == NULL) {
return STATUS_INSUFFICIENT_RESOURCES;