PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE構造体 (pepfx.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

ACPI サービスのデバイスの登録を識別する PEPHANDLE 値。 プラットフォーム拡張機能プラグイン (PEP) は、前の PEP_NOTIFY_ACPI_REGISTER_DEVICE 通知に応答してこのハンドルを提供しました。

RequestFlags

入力フラグのセット。 現在、このメンバーにはフラグは定義されていません。これは常に PEP_ACPI_EDN_FLAG_NONE (0x0) に設定されます。

Status

要求された device-namespace 列挙の状態を示す NTSTATUS 値。 PEP がデバイス名前空間内のオブジェクトの列挙に成功した場合は、このメンバーを STATUS_SUCCESS に設定します。 ObjectBufferSize メンバーの入力値が、割り当てられたバッファーが Objects 配列を格納するのに十分な大きさではないことを示す場合は、STATUS_BUFFER_TOO_SMALL に設定します。

ObjectCount

Objects 配列内の要素の数。

ObjectBufferSize

構造体に続く Objects 配列要素に対して Windows 電源管理フレームワーク (PoFx) が割り当てたバッファーのサイズ (バイト単位)。 ObjectBufferSize の入力値が、すべての Objects 配列要素を格納するのに十分な大きさではない場合、PEP は入力値を必要なサイズで上書きし、Status メンバーをSTATUS_BUFFER_TOO_SMALLに設定します。 詳細については、「解説」をご覧ください。

Objects[ANYSIZE_ARRAY]

デバイスの ACPI 名前空間内のオブジェクトを記述する PEP_ACPI_OBJECT_NAME_WITH_TYPE 構造体の配列の最初の要素。 この配列に複数の要素が含まれている場合、追加の配列要素は 、PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE 構造体の末尾に続きます。

注釈

この構造体は、 PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE 通知によって使用されます。 RequestFlags メンバーと ObjectBufferSize メンバーには、通知の送信時に PoFx によって提供される入力値が含まれます。 入力値が必要な出力バッファー サイズより小さい場合、PEP によって ObjectBufferSize 入力値が出力値で上書きされる可能性があります。 StatusObjectCount、および Objects メンバーには、PEP が構造体に書き込む出力値が含まれています。

ObjectCount は、このデバイスの ACPI 名前空間に一覧表示されているオブジェクトの数です。 PEP では、ObjectCount 配列要素を格納するのに十分な大きさのオブジェクト配列に対して PoFx によって割り当てられたストレージが確認されます。 の場合 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 に 2 つ目の PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE 通知を送信します。

要件

要件
サポートされている最小のクライアント Windows 10 以降でサポートされています。
Header pepfx.h (Pep_x.h を含む)

こちらもご覧ください