estrutura PEP_ACPI_EVALUATE_CONTROL_METHOD (pep_x.h)

A estrutura PEP_ACPI_EVALUATE_CONTROL_METHOD especifica um método de controle ACPI a ser avaliado, um argumento de entrada a ser fornecido a esse método e um buffer de saída para o resultado da avaliação.

Sintaxe

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;

Membros

DeviceHandle

Um valor PEPHANDLE que identifica o registro do dispositivo para serviços ACPI. O PEP (plug-in de extensão de plataforma) forneceu esse identificador em resposta a uma notificação de PEP_NOTIFY_ACPI_REGISTER_DEVICE anterior.

RequestFlags

Um conjunto de sinalizadores. Esse membro contém um dos valores a seguir.

Nome do sinalizador Valor Significado
PEP_ACPI_ECM_FLAG_NONE 0x0 Não é um nome de método de controle válido.
PEP_ACPI_ECM_FLAG_RELATIVE_NAME 0x1 O membro MethodNameUlong contém um nome de método de controle relativo de caminho.
PEP_ACPI_ECM_FLAG_FULLY_QUALIFIED_NAME 0x2 O membro MethodNameString contém um nome de método de controle totalmente qualificado.

MethodName

Um valor ULONG que contém o nome relativo de caminho de quatro caracteres do método de controle ACPI.

MethodNameString

Uma estrutura ANSI_STRING que contém o nome totalmente qualificado do método de controle ACPI. Esse nome especifica o caminho e o nome do método no namespace ACPI. Para obter mais informações, consulte Enumerando dispositivos filho e métodos de controle.

MethodStatus

Um valor NTSTATUS que indica o status da avaliação do método de controle ACPI. Defina esse membro como STATUS_SUCCESS para indicar que o PEP (plug-in de extensão de plataforma) concluiu com êxito sua avaliação do método. Defina como STATUS_NOT_SUPPORTED para indicar que o PEP não reconhece o método de controle. Defina como STATUS_BUFFER_TOO_SMALL para indicar que o tamanho do buffer de saída especificado pelo membro InputArgumentSize não é grande o suficiente para conter os resultados do método.

Se o PEP for avaliar o método de forma assíncrona, defina esse membro como STATUS_PENDING e retorne do retorno de chamada AcceptAcpiNotification . Posteriormente, quando a avaliação for concluída, o PEP chamará a rotina CompleteWork para notificar a PoFx (estrutura de gerenciamento de energia ) do Windows de que a avaliação do método de controle está concluída.

CompletionContext

Um ponteiro para um valor de contexto de conclusão. O PEP usará esse membro somente se o método de controle for avaliado de forma assíncrona. Nesse caso, o PEP fornece esse ponteiro de contexto de conclusão na chamada para a rotina CompleteWork que notifica a PoFx (estrutura de gerenciamento de energia ) do Windows de que a avaliação do método de controle está concluída. Incluído nos parâmetros de entrada para essa chamada é um ponteiro para uma estrutura PEP_WORK_ACPI_EVALUATE_CONTROL_METHOD_COMPLETE na qual o PEP gravou o ponteiro de contexto de conclusão. O contexto é opaco para o PEP e contém dados usados internamente pelo PoFx.

InputArgumentCount

O número de argumentos de entrada no buffer de entrada apontado pelo membro InputArguments . Cada argumento começa com uma estrutura ACPI_METHOD_ARGUMENT que especifica o tamanho do argumento. Atualmente, o valor máximo de InputArgumentCount é um.

InputArgumentSize

O tamanho, em bytes, do buffer de entrada apontado pelo membro InputArguments .

InputArguments

Um ponteiro para um buffer de entrada que contém uma estrutura ACPI_METHOD_ARGUMENT que especifica o argumento de entrada para o método de controle ACPI especificado.

OutputArgumentCount

O número de argumentos de saída no buffer de saída apontado pelo membro OutputArguments . Cada argumento começa com uma estrutura ACPI_METHOD_ARGUMENT que especifica o tamanho do argumento. Atualmente, o valor máximo permitido de OutputArgumentCount é um.

OutputArgumentSize

Na entrada, o tamanho, em bytes, do buffer de saída apontado pelo membro OutputArguments . Se esse buffer não for grande o suficiente para conter o resultado da avaliação do método, o PEP substituirá o valor de entrada OutputArgumentSize pelo tamanho necessário e definirá o membro MethodStatus como STATUS_BUFFER_TOO_SMALL.

OutputArguments

Um ponteiro para um buffer de saída no qual o PEP grava uma estrutura ACPI_METHOD_ARGUMENT que contém o resultado da avaliação do método de controle ACPI especificado.

Comentários

Essa estrutura é usada pela notificação PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD . O membro MethodStatus contém um valor de saída que o PEP grava na estrutura em resposta a essa notificação. O membro OutputArgumentSize contém um valor de entrada fornecido pelo PoFx quando a notificação é enviada. O PEP poderá substituir esse valor de entrada por um valor de saída se o valor de entrada for menor que o tamanho do buffer de saída necessário. Todos os outros membros dessa estrutura contêm valores de entrada fornecidos pela PoFx quando a notificação é enviada.

Essa estrutura define uma união sem nome que contém o nome do método de controle relativo de caminho de quatro caracteres (se RequestFlags = PEP_ACPI_ECM_FLAG_RELATIVE_NAME) ou o nome do método de controle totalmente qualificado (se RequestFlags = PEP_ACPI_ECM_FLAG_FULLY_QUALIFIED_NAME).

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte a partir do Windows 10.
Cabeçalho pep_x.h (inclua Pep_x.h)

Confira também