1312{
1313 ULONG NumberOfResources = 0;
1317 ULONG i, RequirementsListSize;
1322
1324
1326 {
1327 return Irp->IoStatus.Status;
1328 }
1329
1330
1333 {
1334 return Irp->IoStatus.Status;
1335 }
1336
1337
1339 {
1341 if (CurrentRes)
1343 else
1347 {
1348 if (!CurrentRes)
1350 else
1351 return Irp->IoStatus.Status;
1352 }
1353 else
1354 break;
1355 }
1356
1360
1361 if (CurrentRes)
1363 else
1366 {
1367 DPRINT1(
"AcpiGetCurrentResources #2 failed (0x%x)\n", AcpiStatus);
1370 }
1371
1372 SeenStartDependent =
FALSE;
1374
1376 {
1378 {
1379 if (SeenStartDependent)
1380 {
1381 break;
1382 }
1383 SeenStartDependent =
TRUE;
1384 }
1386 {
1388 {
1391 break;
1393 break;
1394 }
1396 {
1399 break;
1400 }
1402 {
1405 break;
1406 }
1411 {
1414 break;
1415 NumberOfResources++;
1416 break;
1417 }
1423 {
1424 NumberOfResources++;
1425 break;
1426 }
1427 default:
1428 {
1429 break;
1430 }
1431 }
1433 }
1434
1437
1439 {
1442 }
1452
1453
1454 SeenStartDependent =
FALSE;
1457 {
1459 {
1460 if (SeenStartDependent)
1461 {
1462 break;
1463 }
1464 SeenStartDependent =
TRUE;
1465 }
1467 {
1469 {
1472 break;
1474 {
1479 RequirementDescriptor->
u.
Interrupt.MinimumVector =
1481
1482 RequirementDescriptor++;
1483 }
1484 break;
1485 }
1487 {
1490 {
1495 RequirementDescriptor->
u.
Interrupt.MinimumVector =
1497
1498 RequirementDescriptor++;
1499 }
1500 break;
1501 }
1503 {
1506 {
1508 RequirementDescriptor->
Flags = 0;
1509 switch (dma_data->
Type)
1510 {
1514 }
1518 {
1522 }
1523
1526 RequirementDescriptor->
u.
Dma.MinimumChannel =
1527 RequirementDescriptor->
u.
Dma.MaximumChannel = dma_data->
Channels[
i];
1528 RequirementDescriptor++;
1529 }
1530 break;
1531 }
1533 {
1538 else
1545 RequirementDescriptor->
u.
Port.MinimumAddress.QuadPart = io_data->
Minimum;
1547
1548 RequirementDescriptor++;
1549 break;
1550 }
1552 {
1559 RequirementDescriptor->
u.
Port.Alignment = 1;
1560 RequirementDescriptor->
u.
Port.MinimumAddress.QuadPart = io_data->
Address;
1562
1563 RequirementDescriptor++;
1564 break;
1565 }
1567 {
1570 break;
1573 {
1576 RequirementDescriptor->
Flags = 0;
1580 }
1582 {
1591 }
1592 else
1593 {
1596 RequirementDescriptor->
Flags = 0;
1599 else
1601 switch (addr16_data->Info.Mem.Caching)
1602 {
1606 }
1610 }
1611 RequirementDescriptor++;
1612 break;
1613 }
1615 {
1618 break;
1621 {
1624 RequirementDescriptor->
Flags = 0;
1628 }
1630 {
1639 }
1640 else
1641 {
1644 RequirementDescriptor->
Flags = 0;
1647 else
1649 switch (addr32_data->Info.Mem.Caching)
1650 {
1654 }
1658 }
1659 RequirementDescriptor++;
1660 break;
1661 }
1663 {
1666 break;
1669 {
1670 DPRINT1(
"64-bit bus address is not supported!\n");
1673 RequirementDescriptor->
Flags = 0;
1677 }
1679 {
1688 }
1689 else
1690 {
1693 RequirementDescriptor->
Flags = 0;
1696 else
1698 switch (addr64_data->Info.Mem.Caching)
1699 {
1703 }
1707 }
1708 RequirementDescriptor++;
1709 break;
1710 }
1712 {
1715 break;
1718 {
1719 DPRINT1(
"64-bit bus address is not supported!\n");
1722 RequirementDescriptor->
Flags = 0;
1726 }
1728 {
1737 }
1738 else
1739 {
1742 RequirementDescriptor->
Flags = 0;
1745 else
1747 switch (addr64_data->Info.Mem.Caching)
1748 {
1752 }
1756 }
1757 RequirementDescriptor++;
1758 break;
1759 }
1761 {
1769 else
1771 RequirementDescriptor->
u.
Memory.MinimumAddress.QuadPart = mem24_data->
Minimum;
1774
1775 RequirementDescriptor++;
1776 break;
1777 }
1779 {
1784 RequirementDescriptor->
Flags = 0;
1787 else
1789 RequirementDescriptor->
u.
Memory.MinimumAddress.QuadPart = mem32_data->
Minimum;
1792
1793 RequirementDescriptor++;
1794 break;
1795 }
1797 {
1802 RequirementDescriptor->
Flags = 0;
1805 else
1807 RequirementDescriptor->
u.
Memory.MinimumAddress.QuadPart = fixedmem32_data->
Address;
1810
1811 RequirementDescriptor++;
1812 break;
1813 }
1814 default:
1815 {
1816 break;
1817 }
1818 }
1820 }
1822
1824
1826}
#define AE_BUFFER_OVERFLOW
#define ACPI_RESOURCE_TYPE_MEMORY32
#define ACPI_CACHABLE_MEMORY
#define ACPI_NEXT_RESOURCE(Res)
#define ACPI_RESOURCE_TYPE_DMA
#define ACPI_RESOURCE_TYPE_MEMORY24
#define ACPI_READ_ONLY_MEMORY
#define ACPI_RESOURCE_TYPE_EXTENDED_IRQ
#define ACPI_RESOURCE_TYPE_IRQ
#define ACPI_RESOURCE_TYPE_FIXED_IO
#define ACPI_BUS_NUMBER_RANGE
#define ACPI_TRANSFER_8_16
#define ACPI_RESOURCE_TYPE_END_DEPENDENT
#define ACPI_RESOURCE_TYPE_END_TAG
#define ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64
#define ACPI_RESOURCE_TYPE_START_DEPENDENT
#define ACPI_PREFETCHABLE_MEMORY
#define ACPI_RESOURCE_TYPE_ADDRESS64
#define ACPI_WRITE_COMBINING_MEMORY
#define ACPI_RESOURCE_TYPE_FIXED_MEMORY32
#define ACPI_RESOURCE_TYPE_ADDRESS32
#define ACPI_LEVEL_SENSITIVE
#define ACPI_RESOURCE_TYPE_IO
#define ACPI_RESOURCE_TYPE_ADDRESS16
#define CmResourceTypeMemory
#define CmResourceTypeDma
#define CmResourceTypePort
#define CmResourceTypeBusNumber
#define CmResourceTypeInterrupt
#define ExFreePoolWithTag(_P, _T)
#define CM_RESOURCE_PORT_POSITIVE_DECODE
#define CM_RESOURCE_MEMORY_PREFETCHABLE
#define CM_RESOURCE_DMA_8_AND_16
#define CM_RESOURCE_DMA_BUS_MASTER
#define CM_RESOURCE_PORT_IO
#define CM_RESOURCE_DMA_8
#define CM_RESOURCE_DMA_TYPE_A
#define CM_RESOURCE_DMA_TYPE_F
#define CM_RESOURCE_MEMORY_READ_ONLY
#define CM_RESOURCE_PORT_16_BIT_DECODE
#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE
#define CM_RESOURCE_MEMORY_COMBINEDWRITE
#define CM_RESOURCE_MEMORY_READ_WRITE
#define CM_RESOURCE_MEMORY_CACHEABLE
#define CM_RESOURCE_DMA_TYPE_B
#define CM_RESOURCE_DMA_16
#define CM_RESOURCE_MEMORY_24
#define CM_RESOURCE_INTERRUPT_LATCHED
#define CM_RESOURCE_PORT_10_BIT_DECODE
ACPI_STATUS AcpiGetCurrentResources(ACPI_HANDLE DeviceHandle, ACPI_BUFFER *RetBuffer)
ACPI_STATUS AcpiGetPossibleResources(ACPI_HANDLE DeviceHandle, ACPI_BUFFER *RetBuffer)
union _IO_RESOURCE_DESCRIPTOR::@2056 u
struct _IO_RESOURCE_DESCRIPTOR::@2056::@2063 BusNumber
struct _IO_RESOURCE_DESCRIPTOR::@2056::@2057 Port
struct _IO_RESOURCE_DESCRIPTOR::@2056::@2060 Dma
struct _IO_RESOURCE_DESCRIPTOR::@2056::@2059 Interrupt
struct _IO_RESOURCE_DESCRIPTOR::@2056::@2058 Memory
ACPI_RESOURCE_ADDRESS_COMMON ACPI_ADDRESS16_ATTRIBUTE Address
ACPI_RESOURCE_ADDRESS_COMMON ACPI_ADDRESS32_ATTRIBUTE Address
ACPI_RESOURCE_ADDRESS_COMMON ACPI_ADDRESS64_ATTRIBUTE Address
ACPI_ADDRESS64_ATTRIBUTE Address
_In_ WDFIORESREQLIST RequirementsList
@ CmResourceShareDeviceExclusive
@ CmResourceShareDriverExclusive
#define IO_RESOURCE_ALTERNATIVE
#define IO_RESOURCE_PREFERRED
struct _IO_RESOURCE_REQUIREMENTS_LIST IO_RESOURCE_REQUIREMENTS_LIST