Поделиться через


структура PEP_QUERY_SOC_SUBSYSTEM (pep_x.h)

Структура PEP_QUERY_SOC_SUBSYSTEM используется уведомления PEP_DPM_QUERY_SOC_SUBSYSTEM для сбора основных сведений о конкретной системе подсистемы микросхемы (SoC).

Синтаксис

typedef struct _PEP_QUERY_SOC_SUBSYSTEM {
  [in]     ULONG          PlatformIdleStateIndex;
  [in]     ULONG          SubsystemIndex;
  [out]    PVOID          SubsystemHandle;
  [in/out] UNICODE_STRING ParentName;
  [in/out] UNICODE_STRING SubsystemName;
  [out]    ULONG          MetadataCount;
           ULONG          Flags;
} PEP_QUERY_SOC_SUBSYSTEM, *PPEP_QUERY_SOC_SUBSYSTEM;

Члены

[in] PlatformIdleStateIndex

Индекс состояния простоя платформы, запрашиваемый ядром.

[in] SubsystemIndex

Индекс подсистемы, который является уникальным индексом, назначенным ОС для каждой подсистемы в контексте заданного PlatformIdleStateIndex.

Ядро инициализирует это значение до нуля и увеличивает его для каждого последующего уведомления статической информации подсистемы. Значение 0 означает, что это первое уведомление для данного PlatformIdleStateIndex. Это поле предназначено для предоставления контекста PEP между экземплярами этого уведомления. Это единственное поле, входное значение которого зависит от экземпляров этого уведомления для заданного PlatformIdleStateIndex и PEP может использовать это значение для поиска подсистемы.

PEP может игнорировать это значение.

[out] SubsystemHandle

Указатель контекста, которому PEP может при необходимости назначить значение. Он получит указатель на последующие уведомления для этой конкретной подсистемы. В последующих уведомлениях PEP использует PlatformIdleStateIndex вместе с имям подсистемы и /или ПодсистемаHandle для поиска данных учета конкретной подсистемы.

По умолчанию значение, если этот элемент равен нулю. Это значение игнорируется ОС и используется только в уведомлениях.

PeP не требуется для заполнения этого элемента.

[in/out] ParentName

Буфер для хранения родительского имени соответствующей подсистемы. Каждая подсистема имеет родительские и подсистемы с одинаковым значением для ParentName считаются братьями и сестрами. Иерархии одноуровневых элементов подсистемы являются необязательными. В отсутствие любой иерархии все подсистемы являются подсистемами верхнего уровня и указывают общее значение для ParentName. Чтобы указать иерархию, подсистемы верхнего уровня указывают общую ParentName, в то время как каждая подсистема, отличной от верхнего уровня, указывает имя подсистемы ParentName.

Перед записью ядро будет:

  • Предварительно выделить 64 WCHAR для ParentName.Buffer[]
  • Ноль буфера
  • Задайте ParentName.MaximumLength размер буфера в байтах и
  • Установка ParentName.Length = 0
Перед выходом PEP должен скопировать строку, завершающуюся значением NULL, в ParentName.Buffer и обновить ParentName.Length с числом байтов, sizeof(WCHAR) раз количество скопированных символов ЮНИКОДа, а не включая завершение UNICODE_NULL.

PEP должен использовать выделенную память, на которую указывает адрес в ParentName.Buffer, чтобы указать родительское имя. Так как эта память предварительно выделена, ее размер нельзя изменить. ПРИ необходимости PEP отвечает за усечение родительского имени, чтобы она не превышала длину, указанную в ParentName.MaximumLength (включая завершающий UNICODE_NULL символ).

[in/out] SubsystemName

Буфер для хранения имени этой подсистемы. Каждая подсистема имеет имя подсистемы и имя подсистемы должно быть уникальным среди всех подсистем в контексте заданного состояния простоя платформы. имя подсистемы подсистемы не может совпадать с ParentName.

Перед записью ядро будет:

  • Предварительно выделить 64 WCHAR для SubsystemName.Buffer[]
  • Ноль буфера
  • Задайте Имя подсистемы.MaximumLength размер буфера в байтах и
  • Установка SubsystemName.Length = 0
Перед выходом PEP должен скопировать строку, завершающуюся значением NULL, в ПодсистемаName.Buffer и обновить Имя_подсистемы.Длина с числом байтов, sizeof(WCHAR) раза в число скопированных символов ЮНИКОДа, а не в том числе UNICODE_NULLконца.

PEP должен использовать выделенную память, на которую указывает адрес в SubsystemName.Buffer, чтобы указать имя подсистемы. Так как эта память предварительно выделена, ее размер нельзя изменить. PEP отвечает за усечение имени подсистемы при необходимости, чтобы она не превышала длину, указанную в Имя подсистемы.MaximumLength (включая конечный символ UNICODE_NULL).

[out] MetadataCount

Количество пар строк ключей и значений метаданных, указанных в этой подсистеме SoC.

Метаданные являются необязательными. PEP возвращает ноль, если он не сообщает никаких метаданных для этой подсистемы SoC.

Flags

Этот элемент зарезервирован и должен иметь значение нулю.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается начиная с Windows 10.
заголовка pep_x.h (include Pep_x.h)

См. также

уведомления PEP_DPM_QUERY_SOC_SUBSYSTEM