1316{
1317 ULONG NumberOfResources = 0;
1321 ULONG i, RequirementsListSize;
1326
1328
1330 {
1331 return Irp->IoStatus.Status;
1332 }
1333
1334
1337 {
1338 return Irp->IoStatus.Status;
1339 }
1340
1341
1343 {
1345 if (CurrentRes)
1347 else
1351 {
1352 if (!CurrentRes)
1354 else
1355 return Irp->IoStatus.Status;
1356 }
1357 else
1358 break;
1359 }
1360
1364
1365 if (CurrentRes)
1367 else
1370 {
1371 DPRINT1(
"AcpiGetCurrentResources #2 failed (0x%x)\n", AcpiStatus);
1374 }
1375
1376 SeenStartDependent =
FALSE;
1378
1380 {
1382 {
1383 if (SeenStartDependent)
1384 {
1385 break;
1386 }
1387 SeenStartDependent =
TRUE;
1388 }
1390 {
1392 {
1395 break;
1397 break;
1398 }
1400 {
1403 break;
1404 }
1406 {
1409 break;
1410 }
1415 {
1418 break;
1419 NumberOfResources++;
1420 break;
1421 }
1427 {
1428 NumberOfResources++;
1429 break;
1430 }
1431 default:
1432 {
1433 break;
1434 }
1435 }
1437 }
1438
1441
1443 {
1446 }
1456
1457
1458 SeenStartDependent =
FALSE;
1461 {
1463 {
1464 if (SeenStartDependent)
1465 {
1466 break;
1467 }
1468 SeenStartDependent =
TRUE;
1469 }
1471 {
1473 {
1476 break;
1478 {
1483 RequirementDescriptor->
u.
Interrupt.MinimumVector =
1485
1486 RequirementDescriptor++;
1487 }
1488 break;
1489 }
1491 {
1494 {
1499 RequirementDescriptor->
u.
Interrupt.MinimumVector =
1501
1502 RequirementDescriptor++;
1503 }
1504 break;
1505 }
1507 {
1510 {
1512 RequirementDescriptor->
Flags = 0;
1513 switch (dma_data->
Type)
1514 {
1518 }
1522 {
1526 }
1527
1530 RequirementDescriptor->
u.
Dma.MinimumChannel =
1531 RequirementDescriptor->
u.
Dma.MaximumChannel = dma_data->
Channels[
i];
1532 RequirementDescriptor++;
1533 }
1534 break;
1535 }
1537 {
1542 else
1549 RequirementDescriptor->
u.
Port.MinimumAddress.QuadPart = io_data->
Minimum;
1551
1552 RequirementDescriptor++;
1553 break;
1554 }
1556 {
1563 RequirementDescriptor->
u.
Port.Alignment = 1;
1564 RequirementDescriptor->
u.
Port.MinimumAddress.QuadPart = io_data->
Address;
1566
1567 RequirementDescriptor++;
1568 break;
1569 }
1571 {
1574 break;
1577 {
1580 RequirementDescriptor->
Flags = 0;
1584 }
1586 {
1595 }
1596 else
1597 {
1600 RequirementDescriptor->
Flags = 0;
1603 else
1605 switch (addr16_data->Info.Mem.Caching)
1606 {
1610 }
1614 }
1615 RequirementDescriptor++;
1616 break;
1617 }
1619 {
1622 break;
1625 {
1628 RequirementDescriptor->
Flags = 0;
1632 }
1634 {
1643 }
1644 else
1645 {
1648 RequirementDescriptor->
Flags = 0;
1651 else
1653 switch (addr32_data->Info.Mem.Caching)
1654 {
1658 }
1662 }
1663 RequirementDescriptor++;
1664 break;
1665 }
1667 {
1670 break;
1673 {
1674 DPRINT1(
"64-bit bus address is not supported!\n");
1677 RequirementDescriptor->
Flags = 0;
1681 }
1683 {
1692 }
1693 else
1694 {
1697 RequirementDescriptor->
Flags = 0;
1700 else
1702 switch (addr64_data->Info.Mem.Caching)
1703 {
1707 }
1711 }
1712 RequirementDescriptor++;
1713 break;
1714 }
1716 {
1719 break;
1722 {
1723 DPRINT1(
"64-bit bus address is not supported!\n");
1726 RequirementDescriptor->
Flags = 0;
1730 }
1732 {
1741 }
1742 else
1743 {
1746 RequirementDescriptor->
Flags = 0;
1749 else
1751 switch (addr64_data->Info.Mem.Caching)
1752 {
1756 }
1760 }
1761 RequirementDescriptor++;
1762 break;
1763 }
1765 {
1773 else
1775 RequirementDescriptor->
u.
Memory.MinimumAddress.QuadPart = mem24_data->
Minimum;
1778
1779 RequirementDescriptor++;
1780 break;
1781 }
1783 {
1788 RequirementDescriptor->
Flags = 0;
1791 else
1793 RequirementDescriptor->
u.
Memory.MinimumAddress.QuadPart = mem32_data->
Minimum;
1796
1797 RequirementDescriptor++;
1798 break;
1799 }
1801 {
1806 RequirementDescriptor->
Flags = 0;
1809 else
1811 RequirementDescriptor->
u.
Memory.MinimumAddress.QuadPart = fixedmem32_data->
Address;
1814
1815 RequirementDescriptor++;
1816 break;
1817 }
1818 default:
1819 {
1820 break;
1821 }
1822 }
1824 }
1826
1828
1830}
#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 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_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_PORT_10_BIT_DECODE
#define CmResourceTypeMemory
#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE
#define CmResourceTypeDma
#define CmResourceTypePort
#define CM_RESOURCE_INTERRUPT_LATCHED
#define CmResourceTypeBusNumber
#define CmResourceTypeInterrupt
ACPI_STATUS AcpiGetCurrentResources(ACPI_HANDLE DeviceHandle, ACPI_BUFFER *RetBuffer)
ACPI_STATUS AcpiGetPossibleResources(ACPI_HANDLE DeviceHandle, ACPI_BUFFER *RetBuffer)
struct _IO_RESOURCE_DESCRIPTOR::@2226::@2233 BusNumber
struct _IO_RESOURCE_DESCRIPTOR::@2226::@2230 Dma
union _IO_RESOURCE_DESCRIPTOR::@2226 u
struct _IO_RESOURCE_DESCRIPTOR::@2226::@2229 Interrupt
struct _IO_RESOURCE_DESCRIPTOR::@2226::@2228 Memory
struct _IO_RESOURCE_DESCRIPTOR::@2226::@2227 Port
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