PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE Struktur (pep_x.h)
Die PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE-Struktur enthält eine Enumeration der Objekte im Namespace des Geräts.
Syntax
typedef struct _PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE {
PEPHANDLE DeviceHandle;
ULONG RequestFlags;
NTSTATUS Status;
ULONG ObjectCount;
SIZE_T ObjectBufferSize;
PEP_ACPI_OBJECT_NAME_WITH_TYPE Objects[ANYSIZE_ARRAY];
} PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE, *PPEP_ACPI_ENUMERATE_DEVICE_NAMESPACE;
Member
DeviceHandle
Ein PEPHANDLE-Wert, der die Registrierung des Geräts für ACPI-Dienste identifiziert. Das Plattformerweiterungs-Plug-In (PEP) hat dieses Handle als Reaktion auf eine vorherige PEP_NOTIFY_ACPI_REGISTER_DEVICE Benachrichtigung bereitgestellt.
RequestFlags
Eine Reihe von Eingabeflags. Für dieses Element sind derzeit keine Flags definiert, die immer auf PEP_ACPI_EDN_FLAG_NONE (0x0) festgelegt sind.
Status
Ein NTSTATUS-Wert, der die status der angeforderten Device-Namespace-Enumeration angibt. Legen Sie dieses Element auf STATUS_SUCCESS fest, wenn pep die Objekte im Gerätenamespace erfolgreich aufzählt. Legen Sie auf STATUS_BUFFER_TOO_SMALL fest, wenn der Eingabewert im ObjectBufferSize-Member angibt, dass der zugeordnete Puffer nicht groß genug ist, um das Objects-Array zu enthalten.
ObjectCount
Die Anzahl der Elemente im Array Objects .
ObjectBufferSize
Die Größe des Puffers in Bytes, den das Windows Power Management Framework (PoFx) für die Objekte-Arrayelemente zugewiesen hat, die der Struktur folgen. Wenn der Eingabewert von ObjectBufferSize nicht groß genug ist, um alle Objects-Arrayelemente zu enthalten, überschreibt PEP den Eingabewert mit der erforderlichen Größe und legt den Statusmember auf STATUS_BUFFER_TOO_SMALL fest. Weitere Informationen finden Sie unter Hinweise.
Objects[ANYSIZE_ARRAY]
Das erste Element in einem Array von PEP_ACPI_OBJECT_NAME_WITH_TYPE Strukturen, die die Objekte im ACPI-Namespace des Geräts beschreiben. Wenn dieses Array mehrere Elemente enthält, folgen die zusätzlichen Arrayelemente dem Ende der PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE Struktur.
Hinweise
Diese Struktur wird von der PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE Benachrichtigung verwendet. Die Member RequestFlags und ObjectBufferSize enthalten Eingabewerte, die von PoFx beim Senden der Benachrichtigung angegeben werden. Der PEP kann den ObjectBufferSize-Eingabewert mit einem Ausgabewert überschreiben, wenn der Eingabewert kleiner als die erforderliche Ausgabepuffergröße ist. Die Member Status, ObjectCount und Objects enthalten Ausgabewerte, die vom PEP in die Struktur geschrieben werden.
ObjectCount ist die Anzahl der Objekte, die im ACPI-Namespace unter diesem Gerät aufgeführt sind. Der PEP sollte überprüfen, ob der von PoFx für das Objects-Array zugewiesene Speicher groß genug ist, um ObjectCount-Arrayelemente zu enthalten. Wenn ObjectCount > 1
, folgen die zusätzlichen ObjectCount-1-Arrayelemente dem Ende der PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE-Struktur . Die Puffergröße, die erforderlich ist, um die Struktur und zusätzliche Arrayelemente zu enthalten, wird wie folgt berechnet:
sizeof(PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE) + ((ObjectCount-1) * sizeof(PEP_ACPI_OBJECT_NAME_WITH_TYPE));
Wenn der im ObjectBufferSize-Member angegebene Eingabewert kleiner als die erforderliche Größe ist, überschreibt PEP den ObjectBufferSize-Eingabewert mit der erforderlichen Größe und legt den Statusmember auf STATUS_BUFFER_TOO_SMALL fest. Als Reaktion weist PoFx einen Puffer der erforderlichen Größe zu und sendet eine zweite PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE Benachrichtigung an das PEP für dieses Gerät.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Wird ab Windows 10 unterstützt. |
Kopfzeile | pep_x.h (einschließlich Pep_x.h) |