Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
I ett ACPI-namnområde kan ett objekt som är en enhet – till exempel en enhet med namnet "ABCD" – ha underordnade objekt som är underordnade enheter på enheten eller som är kontrollmetoder som stöds av enheten. Alla barnobjekt som är en underordnad enhet till en överordnad enhet kan i sin tur rekursivt ha barnobjekt som är underordnade enheter eller styrmetoder.
I följande förenklade ACPI-namnområde anges till exempel roten för ACPI-namnområdet av "\" och objektet "ABCD" är en enhet som är ett omedelbart underordnat till roten i ACPI-namnområdet. Dessutom har enheten "ABCD" två omedelbara underordnade enheter med namnet "CHL1" och "CHL2" och ett underordnat objekt som är en kontrollmetod med namnet "_FOO". Dessutom har den underordnade enheten CHL2 en underordnad enhet med namnet "CHL3" och enheten "CHL3" har ett underordnat objekt som är en kontrollmetod med namnet "_FOO".
\ root of ACPI namespace
ABCD parent device
CHL1 child device of ABCD
CHL2 child device of ABCD
CHL3 child device of CHL2
_FOO control method
_FOO control method
Om du vill använda IOCTL_ACPI_EVAL_METHOD_EX eller IOCTL_ACPI_ASYNC_EVAL_METHOD_EX tillhandahåller en drivrutin för en enhet sökvägen och namnet på kontrollmetoden i ett ACPI-namnområde. För att få hjälp med att hämta sökvägen och namnet på en enhet och underordnade objekt på en enhet stöder Windows IOCTL_ACPI_ENUM_CHILDREN begäran. Med hänvisning till det förenklade ACPI-namnområdet i det här avsnittet som exempel kan en drivrutin i enhetsstacken för enheten "ABCD" använda den här begäran för att göra följande:
Lista enheten "ABCD" och de direkta underenheterna för "ABCD". Till exempel kan begäran användas för att returnera \ABCD, \ABCD. CHL1 och \ABCD. CHL2."
Räkna rekursivt upp alla enheter i namnområdet för "ABCD". Till exempel kan begäran användas för att returnera \ABCD, \ABCD. CHL1", '\ABCD. CHL2 och \ABCD. CHL2. CHL3."
Enumerera rekursivt alla underordnade objekt i 'ABCD' med ett angivet namn. Det angivna namnet fungerar som ett filter så att endast de underordnade objekt som har samma namn listas. För det angivna namnet "_FOO" kan begäran till exempel användas för att returnera \ABCD._FOO och \ABCD. CHL2. CHL3._FOO."
När en drivrutin har hämtat sökvägen och namnet på en kontrollmetod kan den ange sökvägen och namnet som indata till IOCTL_ACPI_EVAL_METHOD_EX eller IOCTL_ACPI_ASYNC_EVAL_METHOD_EX, enligt beskrivningen i Utvärdera ACPI-kontrollmetoder synkront.
En IOCTL_ACPI_ENUM_CHILDREN begäran tar som indata en drivrutinsallokerad variabellängd ACPI_ENUM_CHILDREN_INPUT_BUFFER struktur som innehåller följande medlemmar:
Signature
Signaturen för indatabufferten, som måste ställas in till ACPI_ENUM_CHILDREN_INPUT_BUFFER_SIGNATURE.
Flags
En flagga som avgör vilka objekt i ACPI-namnområdet för en enhet som ACPI-drivrutinen räknar upp. ACPI-drivrutinen returnerar den fullständiga sökvägen och namnet på det uppräknade objektet som börjar med roten i ACPI-namnområdet. Flaggan måste vara inställd på något av följande värden:
| Flagga | Beskrivning |
|---|---|
| ENUM_CHILDREN_IMMEDIATE_ONLY | Räknar upp enheten och räknar upp de direkt underordnade enheterna till enheten. |
| ENUM_BARN_FLERNIVÅER | Räknar upp enheten och räknar rekursivt upp alla underordnade enheter på enheten. |
| Enum_barn_namn_är_filter | En bitvis ELLER av ENUM_CHILDREN och ENUM_CHILDREN_NAME_IS_FILTER räknar upp enhetens underordnade objekt vars namn är samma som det som anges av Namn-medlemmen. |
NameLength
Antalet ASCII-tecken som namnmatrisen innehåller.
Name
En NULL-avslutad ASCII-matris med fyra tecken som innehåller namnet på ett underordnat objekt som ACPI-drivrutinen använder för att begränsa uppräkningen av underordnade objekt till de objekt som har samma namn.
IOCTL_ACPI_ENUM_CHILDREN-begäran returnerar sökvägen och namnet på de underordnade objekten i en drivrutinsallokerad ACPI_ENUM_CHILDREN_OUTPUT_BUFFER med variabel längd som innehåller följande medlemmar:
Signature
Signaturen för utdatabufferten, som måste anges till ACPI_ENUM_CHILDREN_OUTPUT_BUFFER_SIGNATURE.
NumberOfChildren
Antalet element av typen ACPI_ENUM_CHILD i arrayen Children.
Children
En matris med element av typen ACPI_ENUM_CHILD. Namnmedlemmen i en ACPI_ENUM_CHILD struktur innehåller sökvägen och namnet på det underordnade objektet, och flags-medlemmen anger om det underordnade objektet har underordnade objekt.
Om utdatabufferten som drivrutinen allokerar inte är tillräckligt stor för att returnera alla uppräknade underordnade namn, returnerar ACPI-drivrutinen inga underordnade namn och anger statusmedlemmen för IO_STATUS_BLOCK för begäran till STATUS_BUFFER_OVERFLOW. I det här fallet, om storleken i byte av utdatabufferten är minst sizeof(ACPI_ENUM_CHILDREN_OUTPUT_BUFFER_SIGNATURE), anger ACPI-drivrutinen även NumberOfChildren till den storlek i byte som krävs för att hämta de begärda sökvägarna och namnen.