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
ACPI サービスに対するデバイスの登録を識別する PEPHANDLE 値。 プラットフォーム拡張機能プラグイン (PEP) は、以前の PEP_NOTIFY_ACPI_REGISTER_DEVICE 通知に応答してこのハンドルを提供しました。
RequestFlags
入力フラグのセット。 現在、このメンバーにはフラグは定義されていません。これは常に PEP_ACPI_EDN_FLAG_NONE (0x0) に設定されます。
Status
要求されたデバイス名前空間列挙型の状態を示す NTSTATUS 値。 PEP がデバイス名前空間内のオブジェクトの列挙に成功した場合は、このメンバーをSTATUS_SUCCESSに設定します。 ObjectBufferSize メンバーの入力値が、割り当てられたバッファーが配列 オブジェクトを格納するのに十分な大きさではないことを示す場合に、STATUS_BUFFER_TOO_SMALLに設定します。
ObjectCount
Objects 配列内の要素の数。
ObjectBufferSize
Objects 構造体に従う配列要素に割り当てられた、Windows 電源管理フレームワーク (PoFx) が割り当てたバッファーのサイズ (バイト単位)。 ObjectBufferSize の入力値が、配列要素 すべての オブジェクトを格納するのに十分な大きさでない場合、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 入力値が出力値で上書きされる可能性があります。 Status、ObjectCount、および Objects メンバーには、PEP が構造体に書き込む出力値が含まれます。
ObjectCount は、このデバイスの ACPI 名前空間にリストされているオブジェクトの数です。 PEP は、Objects 配列に対して PoFx によって割り当てられたストレージが、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 に 2 つ目の PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE 通知を送信します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 10 以降でサポートされています。 |
ヘッダー | pep_x.h (Pep_x.h を含む) |