структура PEP_QUERY_SOC_SUBSYSTEM (pepfx.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 вместе с SubsystemName и (или ) SubsystemHandle для поиска данных учета конкретной подсистемы.
По умолчанию значение, если этот элемент равен нулю. Это значение игнорируется операционной системой и используется только в уведомлениях.
PeP не требуется для заполнения этого элемента.
[in/out] ParentName
Буфер для хранения родительского имени соответствующей подсистемы. Каждая подсистема имеет родительский элемент, а подсистемы с одинаковым значением ParentName считаются одноуровневыми элементами. Иерархии одного уровня подсистемы являются необязательными. При отсутствии какой-либо иерархии все подсистемы являются подсистемами верхнего уровня и указывают общее значение для ParentName. Чтобы указать иерархию, подсистемы верхнего уровня указывают общее значение ParentName , а каждая подсистема не верхнего уровня указывает имя подсистемы своей родительской подсистемы в параметре ParentName.
Перед записью ядро будет:
- Предварительное выделение 64 WCHAR для ParentName.Buffer[]
- Ноль буфера
- Задайте для параметра ParentName.MaximumLength размер буфера в байтах, и
- Задать parentName.Length = 0
PeP должен использовать выделенную память, на которую указывает адрес в ParentName.Buffer , чтобы указать родительское имя. Так как эта память предварительно выделена, ее размер нельзя изменить. PeP отвечает за усечение родительского имени, если это необходимо, чтобы оно не превышало длину, указанную в ParentName.MaximumLength (включая символ конца UNICODE_NULL ).
[in/out] SubsystemName
Буфер для хранения имени этой подсистемы. Каждая подсистема имеет имя подсистемы, а имя подсистемы должно быть уникальным среди всех подсистем в контексте заданного состояния простоя платформы. Имя подсистемы SubsystemName не может совпадать с parentName.
Перед записью ядро будет:
- Предварительное выделение 64 WCHAR для имя_подсистемы.Buffer[]
- Ноль буфера
- Задайте для subsystemName.MaximumLength размер буфера в байтах, и
- Задать имя_подсистемы.Длина = 0
PeP должен использовать выделенную память, на которую указывает адрес в Имя_подсистемы.Буфер , чтобы указать имя подсистемы. Так как эта память предварительно выделена, ее размер нельзя изменить. PeP отвечает за усечение имени подсистемы, если это необходимо, чтобы оно не превышало длину, указанную в subsystemName.MaximumLength (включая символ конца UNICODE_NULL ).
[out] MetadataCount
Количество пар строк "ключ-значение метаданных", подсчитано данной подсистемой SoC.
Метаданные являются необязательными. PeP возвращает ноль, если он не сообщает метаданные для этой подсистемы SoC.
Flags
Этот элемент зарезервирован и должен иметь нулевое значение.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается начиная с Windows 10. |
Верхняя часть | pepfx.h (включая Pep_x.h) |