PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE 結構 (pep_x.h)

PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE 結構包含裝置命名空間中物件的列舉。

語法

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;

成員

DeviceHandle

PEPHANDLE 值,可識別裝置的 ACPI 服務註冊。 平臺擴充功能外掛程式 (PEP) 提供此句柄,以回應先前 的PEP_NOTIFY_ACPI_REGISTER_DEVICE 通知。

RequestFlags

一組輸入旗標。 此成員目前未定義任何旗標,此成員一律設定為 PEP_ACPI_EDN_FLAG_NONE (0x0) 。

Status

NTSTATUS 值,表示要求之裝置命名空間列舉的狀態。 如果 PEP 成功列舉裝置命名空間中的物件,請將此成員設定為STATUS_SUCCESS。 如果 ObjectBufferSize 成員中的輸入值指出配置的緩衝區不夠大,無法包含 Objects 陣列,則設定為 STATUS_BUFFER_TOO_SMALL。

ObjectCount

Objects 陣列中的項目數目。

ObjectBufferSize

Windows 電源管理架構 (PoFx 所配置的緩衝區大小,以位元組為單位,) 配置給結構後面的 Objects 陣組元素。 如果 ObjectBufferSize 的輸入值不足以包含所有 Objects 陣列元素,PEP 會以所需的大小覆寫輸入值,並將 Status 成員設定為STATUS_BUFFER_TOO_SMALL。 如需詳細資訊,請參閱

Objects[ANYSIZE_ARRAY]

PEP_ACPI_OBJECT_NAME_WITH_TYPE 結構陣列中的第一個專案,描述裝置 ACPI 命名空間中的物件。 如果此陣列包含多個元素,則其他數位元素會遵循 PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE 結構的結尾。

備註

此結構是由 PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE 通知使用。 RequestFlagsObjectBufferSize 成員包含傳送通知時 PoFx 所提供的輸入值。 如果輸入值小於所需的輸出緩衝區大小,PEP 可能會以輸出值覆寫 ObjectBufferSize 輸入值。 StatusObjectCountObjects 成員包含 PEP 寫入結構的輸出值。

ObjectCount 是此裝置下 ACPI 命名空間中列出的物件數目。 PEP 應該確認 PoFx 為 Objects 陣列配置的記憶體夠大,足以包含 ObjectCount 陣列元素。 如果 ObjectCount > 1為 ,則其他 ObjectCount-1 陣列元素會遵循 PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE 結構的結尾。 包含結構和其他陣列元素所需的緩衝區大小會計算如下:

sizeof(PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE) + ((ObjectCount-1) * sizeof(PEP_ACPI_OBJECT_NAME_WITH_TYPE));

如果 ObjectBufferSize 成員中指定的輸入值小於所需的大小,PEP 會以所需的大小覆寫 ObjectBufferSize 輸入值,並將 Status 成員設定為STATUS_BUFFER_TOO_SMALL。 為了回應,PoFx 會配置所需大小的緩衝區,並將第二個 PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE 通知傳送給此裝置的 PEP。

規格需求

需求
最低支援的用戶端 從Windows 10 開始支援。
標頭 pep_x.h (包含 Pep_x.h)

另請參閱