estructura de PEP_ACPI_EVALUATE_CONTROL_METHOD (pep_x.h)

La estructura de PEP_ACPI_EVALUATE_CONTROL_METHOD especifica un método de control ACPI que se va a evaluar, un argumento de entrada que se va a proporcionar a este método y un búfer de salida para el resultado de la evaluación.

Sintaxis

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;

Miembros

DeviceHandle

Valor PEPHANDLE que identifica el registro del dispositivo para los servicios ACPI. El complemento de extensión de plataforma (PEP) proporcionó este identificador en respuesta a una notificación de PEP_NOTIFY_ACPI_REGISTER_DEVICE anterior.

RequestFlags

Un conjunto de marcas. Este miembro contiene uno de los valores siguientes.

Nombre del marcador Valor Significado
PEP_ACPI_ECM_FLAG_NONE 0x0 No es un nombre de método de control válido.
PEP_ACPI_ECM_FLAG_RELATIVE_NAME 0x1 El miembro MethodNameUlong contiene un nombre de método de control relativo a la ruta de acceso.
PEP_ACPI_ECM_FLAG_FULLY_QUALIFIED_NAME 0x2 El miembro MethodNameString contiene un nombre de método de control completo.

MethodName

Valor ULONG que contiene el nombre relativo a la ruta de acceso de cuatro caracteres del método de control ACPI.

MethodNameString

Estructura ANSI_STRING que contiene el nombre completo del método de control ACPI. Este nombre especifica la ruta de acceso y el nombre del método en el espacio de nombres ACPI. Para obtener más información, vea Enumerar dispositivos secundarios y métodos de control.

MethodStatus

Valor NTSTATUS que indica el estado de la evaluación del método de control ACPI. Establezca este miembro en STATUS_SUCCESS para indicar que el complemento de extensión de plataforma (PEP) completó correctamente su evaluación del método. Establézcalo en STATUS_NOT_SUPPORTED para indicar que el PEP no reconoce el método de control. Establézcalo en STATUS_BUFFER_TOO_SMALL para indicar que el tamaño del búfer de salida especificado por el miembro InputArgumentSize no es lo suficientemente grande como para contener los resultados del método.

Si el PEP va a evaluar el método de forma asincrónica, establezca este miembro en STATUS_PENDING y vuelva de la devolución de llamada AcceptAcpiNotification . Más adelante, cuando se completa la evaluación, el PEP llama a la rutina CompleteWork para notificar al marco de administración de energía de Windows (PoFx) que la evaluación del método de control se ha completado.

CompletionContext

Puntero a un valor de contexto de finalización. El PEP usa este miembro solo si el método de control se evalúa de forma asincrónica. En este caso, el PEP proporciona este puntero de contexto de finalización en la llamada a la rutina CompleteWork que notifica al marco de administración de energía de Windows (PoFx) que la evaluación del método de control está completa. Incluido en los parámetros de entrada de esta llamada es un puntero a una estructura de PEP_WORK_ACPI_EVALUATE_CONTROL_METHOD_COMPLETE a la que el PEP ha escrito el puntero de contexto de finalización. El contexto es opaco para el PEP y contiene datos usados internamente por PoFx.

InputArgumentCount

Número de argumentos de entrada del búfer de entrada al que apunta el miembro InputArguments . Cada argumento comienza con una estructura de ACPI_METHOD_ARGUMENT que especifica el tamaño del argumento. Actualmente, el valor máximo de InputArgumentCount es uno.

InputArgumentSize

Tamaño, en bytes, del búfer de entrada al que apunta el miembro InputArguments .

InputArguments

Puntero a un búfer de entrada que contiene una estructura ACPI_METHOD_ARGUMENT que especifica el argumento de entrada para el método de control ACPI especificado.

OutputArgumentCount

Número de argumentos de salida del búfer de salida al que apunta el miembro OutputArguments . Cada argumento comienza con una estructura de ACPI_METHOD_ARGUMENT que especifica el tamaño del argumento. Actualmente, el valor de OutputArgumentCount máximo permitido es uno.

OutputArgumentSize

En la entrada, el tamaño, en bytes, del búfer de salida al que apunta el miembro OutputArguments . Si este búfer no es lo suficientemente grande como para contener el resultado de evaluar el método, el PEP sobrescribe el valor de entrada OutputArgumentSize con el tamaño necesario y establece el miembro MethodStatus en STATUS_BUFFER_TOO_SMALL.

OutputArguments

Puntero a un búfer de salida en el que el PEP escribe una estructura de ACPI_METHOD_ARGUMENT que contiene el resultado de evaluar el método de control ACPI especificado.

Comentarios

La notificación de PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD usa esta estructura. El miembro MethodStatus contiene un valor de salida que el PEP escribe en la estructura en respuesta a esta notificación. El miembro OutputArgumentSize contiene un valor de entrada proporcionado por PoFx cuando se envía la notificación. El PEP puede sobrescribir este valor de entrada con un valor de salida si el valor de entrada es menor que el tamaño de búfer de salida necesario. Todos los demás miembros de esta estructura contienen valores de entrada proporcionados por PoFx cuando se envía la notificación.

Esta estructura define una unión sin nombre que contiene el nombre del método de control relativo a la ruta de acceso de cuatro caracteres (si RequestFlags = PEP_ACPI_ECM_FLAG_RELATIVE_NAME) o el nombre del método de control completo (si RequestFlags = PEP_ACPI_ECM_FLAG_FULLY_QUALIFIED_NAME).

Requisitos

Requisito Value
Cliente mínimo compatible Se admite a partir de Windows 10.
Encabezado pep_x.h (incluya Pep_x.h)

Consulte también