ACPI-meddelanden

Varje ACPI-meddelande som PEP:s AcceptAcpiNotification-återanropsrutin tar emot åtföljs av en meddelandeparameter som anger typen av meddelande och en dataparameter som pekar på en datastruktur som innehåller informationen för den angivna meddelandetypen.

I det här anropet anges parametern Notification till ett PEP_NOTIFY_ACPI_XXX konstant värde som anger meddelandetypen. Parametern Data pekar på en PEP_ACPI_XXX strukturtyp som är associerad med den här meddelandetypen.

Följande ACPI-meddelande-ID:er används av återanropsrutinen AcceptAcpiNotification.

Meddelande-ID Värde Associerad struktur
PEP_NOTIFY_ACPI_PREPARE_DEVICE 0x01 PEP_ACPI_PREPARE_DEVICE
PEP_NOTIFY_ACPI_ABANDON_DEVICE 0x02 PEP_ACPI_ABANDON_DEVICE
PEP_NOTIFY_ACPI_REGISTER_DEVICE 0x03 PEP_ACPI_REGISTER_DEVICE
PEP_NOTIFY_ACPI_UNREGISTER_DEVICE 0x04 PEP_ACPI_UNREGISTER_DEVICE
PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE 0x05 PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE
PEP_NOTIFY_ACPI_QUERY_OBJECT_INFORMATION 0x06 PEP_ACPI_QUERY_OBJECT_INFORMATION
PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD 0x07 PEP_ACPI_EVALUATE_CONTROL_METHOD
PEP_NOTIFY_ACPI_QUERY_DEVICE_CONTROL_RESOURCES 0x08 PEP_ACPI_QUERY_DEVICE_CONTROL_RESOURCES
PEP_NOTIFY_ACPI_ÖVERSATTADE_ENHETSSTYRRESURSER 0x09 PEP_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES

PEP_NOTIFY_ACPI_PREPARE_DEVICE

Meddelande: Värdet PEP_NOTIFY_ACPI_PREPARE_DEVICE. Data: En pekare till en PEP_ACPI_PREPARE_DEVICE-struktur som identifierar enheten med namn.

Gör att PEP kan välja om du vill tillhandahålla ACPI-tjänster för en enhet.

Windows Power Management Framework (PoFx) skickar det här meddelandet när Windows ACPI-drivrutinen identifierar en ny enhet i ACPI-namnområdet under enhetsuppräkning. Det här meddelandet skickas till PEP:er som implementerar återanropsrutiner för AcceptAcpiNotification.

För att skicka ett PEP_NOTIFY_ACPI_PREPARE_DEVICE-meddelande anropar PoFx PEP:s AcceptAcpiNotification-rutin. I det här anropet är värdet för meddelandeparametern PEP_NOTIFY_ACPI_PREPARE_DEVICE och parametern Data pekar på en PEP_ACPI_PREPARE_DEVICE struktur som innehåller enhetens namn. Om PEP är beredd att tillhandahålla ACPI-tjänster för den här enheten ställer PEP in DeviceAccepted-medlemmen i den här strukturen till TRUE. För att neka att tillhandahålla sådana tjänster anger PEP den här medlemmen till FALSE.

Om PEP anger (genom att ställa in DeviceAccepted = TRUE) att den är beredd att tillhandahålla ACPI-tjänster för enheten, svarar PoFx genom att skicka PEP ett PEP_NOTIFY_ACPI_REGISTER_DEVICE-meddelande för att registrera PEP som den enda leverantören av ACPI-tjänster för enheten. PoFx förväntar sig att endast en PEP gör anspråk på rollen som ACPI-tjänsteleverantör för en enhet.

Vi rekommenderar att du inte utför någon enhetsinitiering som svar på PEP_NOTIFY_ACPI_PREPARE_DEVICE-meddelandet. Skjut i stället upp den här initieringen tills antingen PEP_NOTIFY_ACPI_REGISTER_DEVICE-meddelandet för enheten tas emot eller en ACPI-kontrollmetod (till exempel _INI) anropas för enheten.

För ett PEP_NOTIFY_ACPI_PREPARE_DEVICE-meddelande anropas alltid rutinen AcceptAcpiNotification på IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_ACPI_SLÄPP_ENHET

Meddelande: Värdet PEP_NOTIFY_ACPI_ABANDON_DEVICE.

Data: En pekare till en PEP_ACPI_ABANDON_DEVICE struktur som identifierar den övergivna enheten.

Informerar PEP om att den angivna enheten har övergetts och inte längre kräver ACPI-tjänster från PEP.

Windows Power Management Framework (PoFx) skickar detta meddelande för att informera PEP om att enheten inte längre används av operativsystemet. PEP kan använda det här meddelandet för att rensa all intern lagring som den har allokerat för att spåra enhetens tillstånd.

För att skicka ett PEP_NOTIFY_ACPI_ABANDON_DEVICE-meddelande anropar PoFx PEP:s återanropsrutin AcceptAcpiNotification. I det här anropet är värdet för meddelandeparametern PEP_NOTIFY_ACPI_ABANDON_DEVICE och parametern Data pekar på en PEP_ACPI_ABANDON_DEVICE struktur.

PoFx skickar endast det här meddelandet till en PEP som har valt att tillhandahålla ACPI-tjänster för enheten i ett tidigare PEP_NOTIFY_ACPI_PREPARE_DEVICE meddelande. Om PEP har registrerat sig för att tillhandahålla dessa tjänster i ett tidigare PEP_NOTIFY_ACPI_REGISTER_DEVICE meddelande skickar PoFx ett PEP_NOTIFY_ACPI_UNREGISTER_DEVICE meddelande för enheten innan PEP_NOTIFY_ACPI_ABANDON_DEVICE meddelandet skickas.

För ett PEP_NOTIFY_ACPI_ABANDON_DEVICE-meddelande anropas alltid rutinen AcceptAcpiNotification på IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_ACPI_REGISTER_DEVICE

Meddelande: Värdet PEP_NOTIFY_ACPI_REGISTER_DEVICE.

Data: En pekare till en PEP_ACPI_REGISTER_DEVICE-struktur som identifierar enheten. Som svar på det här meddelandet förväntas PEP skapa ett giltigt PEPHANDLE-värde för att identifiera enheten och skriva det här referensvärdet till strukturen.

Registrerar PEP som den enda leverantören av ACPI-tjänster för den angivna enheten.

Windows Power Management Framework (PoFx) skickar det här meddelandet till en PEP som i ett tidigare PEP_NOTIFY_ACPI_PREPARE_DEVICE meddelande har angett att den är beredd att tillhandahålla ACPI-tjänster för den angivna enheten.

För att skicka ett PEP_NOTIFY_ACPI_REGISTER_DEVICE-meddelande anropar PoFx PEP:s AcceptAcpiNotification-rutin. I det här anropet är värdet för meddelandeparametern PEP_NOTIFY_ACPI_REGISTER_DEVICE och parametern Data pekar på en PEP_ACPI_REGISTER_DEVICE struktur som identifierar den enhet som PEP ska tillhandahålla ACPI-tjänster för.

För ett PEP_NOTIFY_ACPI_REGISTER_DEVICE-meddelande anropas alltid AcceptAcpiNotification-rutinen på IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_ACPI_UNREGISTER_DEVICE

Meddelande: Värdet PEP_NOTIFY_ACPI_UNREGISTER_DEVICE.

Data: En pekare till en PEP_ACPI_UNREGISTER_DEVICE-struktur, som innehåller PEPHANDLE för enheten.

Avbryter registreringen av den angivna enheten för ACPI-tjänster från PEP.

Som svar på denna notifikation kan PEP förstöra PEPHANDLE som PEP skapade för den här enheten i ett tidigare PEP_NOTIFY_ACPI_REGISTER_DEVICE-meddelande.

För att skicka ett PEP_NOTIFY_ACPI_UNREGISTER_DEVICE-meddelande anropar PoFx PEP:s återanropsrutin AcceptAcpiNotification. I det här anropet är värdet för meddelandeparametern PEP_NOTIFY_ACPI_UNREGISTER_DEVICE och parametern Data pekar på en PEP_ACPI_UNREGISTER_DEVICE struktur.

För ett PEP_NOTIFY_ACPI_UNREGISTER_DEVICE-meddelande anropas alltid rutinen AcceptAcpiNotification på IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE

Meddelande: Värdet PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE.

Data: En pekare till en PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE-strukturen som innehåller en uppräkning av objekten i enhetens ACPI-namnområde.

Frågar PEP om listan över ACPI-objekt (interna metoder) som stöds av PEP under den angivna enheten i ACPI-namnområdet.

Windows ACPI-drivrutinen använder de objekt som räknas upp av det här meddelandet för att skapa namnområdet för den angivna enheten. Därefter, när du refererar till den här enheten, kommer ACPI-drivrutinen att fråga PEP endast för dessa objekt.

Windows Power Management Framework (PoFx) skickar PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE-meddelandet strax efter att en enhet har identifierats och PEP registrerar sig för att tillhandahålla ACPI-tjänster för enheten. Mer information om den här registreringen finns i PEP_NOTIFY_ACPI_REGISTER_DEVICE.

För att skicka ett PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE-meddelande anropar PoFx PEP:s återanropsrutin AcceptAcpiNotification. I det här anropet är värdet för meddelandeparametern PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE och parametern Data pekar på en PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE struktur.

AcceptAcpiNotification-rutinen förväntas hantera ett PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE-meddelande och returnera TRUE. Om du inte gör det orsakas en buggkontroll.

För ett PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE-meddelande anropas alltid rutinen AcceptAcpiNotification på IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_ACPI_QUERY_OBJECT_INFORMATION

Meddelande: Värdet PEP_NOTIFY_ACPI_QUERY_OBJECT_INFORMATION.

Data: En pekare till en PEP_ACPI_QUERY_OBJECT_INFORMATION struktur som anger attributen för ACPI-objektet.

Frågar PEP om information om ett tidigare uppräknat ACPI-objekt.

Windows Power Management Framework (PoFx) skickar det här meddelandet för att fråga PEP om attributen för ett objekt som räknas upp under hanteringen av ett tidigare PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE meddelande. För närvarande är de enda objekt som räknas upp kontrollmetoder.

För att skicka ett PEP_NOTIFY_ACPI_QUERY_OBJECT_INFORMATION-meddelande anropar PoFx PEP:s återanropsrutin AcceptAcpiNotification. I det här anropet är värdet för meddelandeparametern PEP_NOTIFY_ACPI_QUERY_OBJECT_INFORMATION och parametern Data pekar på en PEP_ACPI_QUERY_OBJECT_INFORMATION struktur.

För ett PEP_NOTIFY_ACPI_QUERY_OBJECT_INFORMATION-meddelande anropas alltid rutinen AcceptAcpiNotification på IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD

Meddelande: Värdet PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD.

Data: En pekare till en PEP_ACPI_EVALUATE_CONTROL_METHOD struktur som anger en ACPI-kontrollmetod som ska utvärderas, ett indataargument som ska skickas till den här metoden och en utdatabuffert för resultatet.

Används för att utvärdera en ACPI-kontrollmetod för vilken PEP är den registrerade hanteraren.

Windows Power Management Framework (PoFx) skickar det här meddelandet till PEP när Windows ACPI-drivrutinen behöver utvärdera en ACPI-kontrollmetod som implementeras av PEP.

För att skicka ett PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD-meddelande anropar PoFx PEP:s återanropsrutin AcceptAcpiNotification. I det här anropet är värdet för meddelandeparametern PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD och parametern Data pekar på en PEP_ACPI_EVALUATE_CONTROL_METHOD struktur.

Plattformsdesignern kan välja om PEP eller ACPI firmware ska hantera en viss ACPI-kontrollmetod. Om PEP är registrerad hanterare för en ACPI-kontrollmetod svarar PoFx på en begäran från Windows ACPI-drivrutinen om att utvärdera den här metoden genom att skicka ett PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD-meddelande till PEP.

Följande är en lista över exempel på ACPI-kontrollmetoder som PEP kan hantera för en enhet:

Enhetsidentifiering och konfiguration: _HID, _CID, _UID, _ADR, _CLS, _SUB, _CRS, _PRS och så vidare. Strömhushållning och väckning för enheter: _PS0 via _PS3, _PR0 via _PR3, _DSW och så vidare. Enhetsspecifika metoder: _DSM och alla enhetsstackenspecifika kontrollmetoder. För en särskild enhet, till exempel en ACPI-tids- och larmenhet, används det här meddelandet för att utvärdera tids- och larmmetoder (_GCP, _GRT, _SRT och så vidare).

För ett PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD-meddelande anropas alltid rutinen AcceptAcpiNotification på IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_ACPI_QUERY_DEVICE_CONTROL_RESOURCES

Meddelande: Värdet PEP_NOTIFY_ACPI_QUERY_DEVICE_CONTROL_RESOURCES.

Data: En pekare till en PEP_ACPI_QUERY_DEVICE_CONTROL_RESOURCES struktur som innehåller listan över energiresurser.

Frågar PEP om listan över rådata som behövs för att styra strömmen till enheten.

Som svar på det här meddelandet tillhandahåller PEP en lista över de råa resurser som behövs för att kontrollera enhetens ström. Windows ACPI-drivrutinen kräver den här listan så att den kan reservera de energiresurser som krävs av enheten och ange motsvarande lista över översatta resurser till PEP (genom att skicka ett PEP_NOTIFY_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES meddelande). Mer information finns i Råa och översatta resurser.

För att skicka ett PEP_NOTIFY_ACPI_QUERY_DEVICE_CONTROL_RESOURCES-meddelande anropar Windows Power Management Framework (PoFx) PEP:s AcceptAcpiNotification-återanropsrutin. I det här anropet är värdet för meddelandeparametern PEP_NOTIFY_ACPI_QUERY_DEVICE_CONTROL_RESOURCES och parametern Data pekar på en PEP_ACPI_QUERY_DEVICE_CONTROL_RESOURCES struktur.

För ett PEP_NOTIFY_ACPI_QUERY_DEVICE_CONTROL_RESOURCES-meddelande anropas alltid rutinen AcceptAcpiNotification på IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_ACPI_ÖVERSATTADE_ENHETSSTYRRESURSER

Meddelande: Värdet PEP_NOTIFY_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES.

Data: En pekare till en PEP_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES struktur som innehåller listan över översatta resurser.

Ger PEP en lista över översatta resurser för alla kraftstyrningsresurser som behövs för enheten.

Windows strömhanteringsramverk (PoFx) skickar denna notifiering om PEP listade några råresurser som svar på det föregående meddelandet PEP_NOTIFY_ACPI_QUERY_DEVICE_CONTROL_RESOURCES. Meddelandet PEP_NOTIFY_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES ger PEP den tillhörande listan över översatta resurser. Mer information finns i Råa och översatta resurser.

För att skicka ett PEP_NOTIFY_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES-meddelande anropar PoFx PEP:s återanropsrutin AcceptAcpiNotification. I det här anropet är värdet för meddelandeparametern PEP_NOTIFY_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES och parametern Data pekar på en PEP_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES struktur.

För ett PEP_NOTIFY_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES-meddelande anropas alltid rutinen AcceptAcpiNotification på IRQL = PASSIVE_LEVEL.

PEP_NOTIFY_ACPI_WORK

Meddelande: Värdet PEP_NOTIFY_ACPI_WORK.

Data: En pekare till en struktur av typen PEP_WORK.

Skickas till PEP varje gång som PEP anropar RequestWorker-rutinen för att begära ett arbetsobjekt från Windows power management framework (PoFx). Det här meddelandet används endast för ACPI-arbete.

När PEP anropar RequestWorker-rutinen för att begära ett arbetsobjekt svarar PoFx genom att skicka PEP ett PEP_NOTIFY_ACPI_WORK meddelande. Det här meddelandet skickas dock inte förrän de resurser (dvs. arbetstråden) som krävs för att bearbeta arbetsobjektet är tillgängliga. På så sätt garanterar PoFx att den arbetsförfrågan som PEP skickar till PoFx under meddelandeprocessen aldrig kan misslyckas på grund av brist på resurser.

Vid inträde bör PEP anta att den PEP_WORK strukturen är onitialiserad. För att hantera det här meddelandet bör PEP ange WorkInformation-medlemmen så att den pekar på en PEP-allokerad PEP_WORK_INFORMATION struktur som beskriver det arbete som begärs. Dessutom bör PEP ange NeedWork-medlemmen i PEP_WORK-strukturen till TRUE för att bekräfta att PEP har hanterat PEP_NOTIFY_ACPI_WORK-meddelandet och att WorkInformation-medlemmen pekar på en giltig PEP_WORK_INFORMATION struktur. Om PEP inte kan hantera meddelandet eller inte kan allokera PEP_WORK_INFORMATION-strukturen bör PEP ange WorkInformation-medlemmen till NULL och ange NeedWork-medlemmen till FALSE.

För ett PEP_NOTIFY_ACPI_WORK-meddelande anropas alltid rutinen AcceptAcpiNotification på IRQL = PASSIVE_LEVEL.