структура PEP_ACPI_EVALUATE_CONTROL_METHOD (pep_x.h)
Структура PEP_ACPI_EVALUATE_CONTROL_METHOD указывает метод управления ACPI для вычисления, входной аргумент для предоставления этому методу и выходной буфер для результата оценки.
Синтаксис
typedef struct _PEP_ACPI_EVALUATE_CONTROL_METHOD {
PEPHANDLE DeviceHandle;
ULONG RequestFlags;
union {
ULONG MethodName;
ANSI_STRING MethodNameString;
};
NTSTATUS MethodStatus;
PVOID CompletionContext;
ULONG InputArgumentCount;
SIZE_T InputArgumentSize;
PACPI_METHOD_ARGUMENT InputArguments;
ULONG OutputArgumentCount;
SIZE_T OutputArgumentSize;
PACPI_METHOD_ARGUMENT OutputArguments;
} PEP_ACPI_EVALUATE_CONTROL_METHOD, *PPEP_ACPI_EVALUATE_CONTROL_METHOD;
Члены
DeviceHandle
Значение PEPHANDLE, определяющее регистрацию устройства для служб ACPI. Подключаемый модуль расширения платформы (PEP) предоставил этот дескриптор в ответ на предыдущее уведомление PEP_NOTIFY_ACPI_REGISTER_DEVICE.
RequestFlags
Набор флагов. Этот элемент содержит одно из следующих значений.
Имя флага | Ценность | Значение |
---|---|---|
PEP_ACPI_ECM_FLAG_NONE | 0x0 | Недопустимое имя метода элемента управления. |
PEP_ACPI_ECM_FLAG_RELATIVE_NAME | 0x1 | Элемент MethodNameUlong содержит имя метода управления относительно пути. |
PEP_ACPI_ECM_FLAG_FULLY_QUALIFIED_NAME | 0x2 | Элемент MethodNameString содержит полное имя метода управления. |
MethodName
Значение ULONG, содержащее четырехзначное, относительное имя метода управления ACPI.
MethodNameString
Структура ANSI_STRING, содержащая полное имя метода управления ACPI. Это имя указывает путь и имя метода в пространстве имен ACPI. Дополнительные сведения см. в разделе Перечисление дочерних устройств и методов управления.
MethodStatus
Значение NTSTATUS, указывающее состояние оценки метода управления ACPI. Задайте этому элементу значение STATUS_SUCCESS, чтобы указать, что подключаемый модуль расширения платформы (PEP) успешно завершил оценку метода. Установите значение STATUS_NOT_SUPPORTED, чтобы указать, что PEP не распознает метод управления. Задайте значение STATUS_BUFFER_TOO_SMALL, чтобы указать, что размер выходного буфера, указанный элементом inputArgumentSize, недостаточно велик, чтобы содержать результаты метода.
Если peP вычисляет метод асинхронно, задайте для этого элемента значение STATUS_PENDING и вернитесь из обратного вызова AcceptAcpiNotification. Позже после завершения оценки PEP вызывает подпрограмму CompleteWork, чтобы уведомить платформу управления питанием Windows (PoFx), что оценка метода управления завершена.
CompletionContext
Указатель на значение контекста завершения. PEP использует этот элемент только в том случае, если метод управления вычисляется асинхронно. В этом случае PEP предоставляет этот указатель контекста завершения в вызове подпрограммы CompleteWork, которая уведомляет платформу управления питанием Windows (PoFx), что оценка метода управления завершена. Включенный в входные параметры для этого вызова является указателем на структуру PEP_WORK_ACPI_EVALUATE_CONTROL_METHOD_COMPLETE, в которую peP написал указатель контекста завершения. Контекст непрозрачн к PEP и содержит данные, используемые внутри PoFx.
InputArgumentCount
Число входных аргументов в входном буфере, на которое указывает элемент InputArguments. Каждый аргумент начинается с ACPI_METHOD_ARGUMENT структуры, указывающей размер аргумента. В настоящее время максимальное значение inputArgumentCount InputArgumentCount равно одному.
InputArgumentSize
Размер в байтах входного буфера, на который указывает элемент InputArguments.
InputArguments
Указатель на входной буфер, содержащий структуру ACPI_METHOD_ARGUMENT, указывающую входной аргумент для указанного метода управления ACPI.
OutputArgumentCount
Число выходных аргументов в выходном буфере, на которое указывает элемент OutputArguments. Каждый аргумент начинается с ACPI_METHOD_ARGUMENT структуры, указывающей размер аргумента. В настоящее время максимально допустимое значение OutputArgumentCount является одним.
OutputArgumentSize
В входных данных размер в байтах выходного буфера, на который указывает элемент OutputArguments. Если этот буфер недостаточно велик, чтобы содержать результат оценки метода, PEP перезаписывает значение OutputArgumentSize входных данных с необходимым размером и задает элемент MethodStatus для STATUS_BUFFER_TOO_SMALL.
OutputArguments
Указатель на выходной буфер, в который PEP записывает ACPI_METHOD_ARGUMENT структуру, содержащую результат оценки указанного метода управления ACPI.
Замечания
Эта структура используется уведомлением PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD. Элемент MethodStatus содержит выходное значение, которое PEP записывает в структуру в ответ на это уведомление. Элемент outputArgumentSize содержит входное значение, предоставленное PoFx при отправке уведомления. PEP может перезаписать это входное значение с выходным значением, если входное значение меньше требуемого размера выходного буфера. Все остальные члены этой структуры содержат входные значения, предоставляемые PoFx при отправке уведомления.
Эта структура определяет неназванное объединение, содержащее имя метода управления с четырьмя символами (если RequestFlags = PEP_ACPI_ECM_FLAG_RELATIVE_NAME) или полное имя метода управления (если RequestFlags = PEP_ACPI_ECM_FLAG_FULLY_QUALIFIED_NAME).
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Поддерживается начиная с Windows 10. |
заголовка | pep_x.h (include Pep_x.h) |