estructura PEP_ACPI_EVALUATE_CONTROL_METHOD (pepfx.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.
La unión sin nombre de esta estructura 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 | pepfx.h (include Pep_x.h) |