função de retorno de chamada EVT_WDF_DEVICE_D0_ENTRY (wdfdevice.h)

[Aplica-se a KMDF e UMDF]

A função de retorno de chamada de evento EvtDeviceD0Entry de um driver executa operações necessárias quando o dispositivo do driver entra no estado de energia D0.

Sintaxe

EVT_WDF_DEVICE_D0_ENTRY EvtWdfDeviceD0Entry;

NTSTATUS EvtWdfDeviceD0Entry(
  [in] WDFDEVICE Device,
  [in] WDF_POWER_DEVICE_STATE PreviousState
)
{...}

Parâmetros

[in] Device

Um identificador para um objeto de dispositivo de estrutura.

[in] PreviousState

Um enumerador do tipo WDF_POWER_DEVICE_STATE que identifica o estado de energia do dispositivo anterior.

Retornar valor

Se a função de retorno de chamada EvtDeviceD0Entry não encontrar erros, ela deverá retornar STATUS_SUCCESS ou outro valor status para o qual NT_SUCCESS(status) é igual a TRUE. Caso contrário, ele deverá retornar um valor status para o qual NT_SUCCESS(status) é igual a FALSE.

Para obter mais informações sobre os valores retornados dessa função de retorno de chamada, consulte Relatando falhas de dispositivo.

A estrutura não chama a função de retorno de chamada EvtDeviceD0Exit do driver depois que a função de retorno de chamada EvtDeviceD0Entry retorna um valor status para o qual NT_SUCCESS(status) é igual a FALSE.

Comentários

Para registrar uma função de retorno de chamada EvtDeviceD0Entry para um dispositivo, um driver deve chamar WdfDeviceInitSetPnpPowerEventCallbacks.

Se o driver tiver registrado uma função de retorno de chamada EvtDeviceD0Entry para um dispositivo, a estrutura chamará a função sempre que o dispositivo entrar no estado de trabalho (D0). Um dispositivo entrará no estado D0 quando ocorrer um destes procedimentos:

  • Um dispositivo é enumerado (porque o dispositivo foi conectado ou o sistema foi reiniciado).
  • O sistema e todos os seus dispositivos retornam aos seus estados de trabalho de um estado de baixa potência.
  • O dispositivo retorna ao seu estado de trabalho depois que inseriu um estado de baixa potência porque estava ocioso (se o dispositivo dá suporte a ociosidade de baixa energia).
  • O gerenciador de Plug and Play redistribuiu os recursos de hardware do sistema entre os dispositivos do sistema.
A estrutura chama a função de retorno de chamada EvtDeviceD0Entry imediatamente após o dispositivo entrar em seu estado de trabalho (D0) e estiver disponível para o driver, mas antes que as interrupções do dispositivo tenham sido habilitadas. O parâmetro PreviousState identifica o estado de energia do dispositivo em que o dispositivo estava antes de entrar no estado D0. Quando a estrutura chama EvtDeviceD0Entry pela primeira vez, ela fornece um valor PreviousState de WdfPowerDeviceD3Final.

A função de retorno de chamada deve executar todas as operações necessárias para tornar o dispositivo totalmente operacional, como carregar firmware ou habilitar recursos de dispositivo que são desabilitados quando o dispositivo está em um estado de baixa potência.

Se a função de retorno de chamada EvtDeviceD0Entry retornar um valor status para o qual NT_SUCCESS(status) é igual a FALSE, a estrutura fará o seguinte:

  • Se o dispositivo estiver começando pela primeira vez, a estrutura iniciará uma sequência de remoção ordenada para o dispositivo.
  • Se o dispositivo estiver retornando de um estado de baixa potência para seu estado de trabalho, a estrutura iniciará uma sequência de remoção surpresa para o dispositivo.
A estrutura não chama a função de retorno de chamada EvtDeviceD0Exit do driver em nenhuma dessas situações.

Para obter mais informações sobre quando a estrutura chama a função de retorno de chamada EvtDeviceD0Entry , consulte Cenários de gerenciamento de energia e PnP.

Para obter mais informações sobre drivers que fornecem essa função de retorno de chamada, consulte Suporte ao PnP e ao Gerenciamento de Energia em Drivers de Função.

A função de retorno de chamada EvtDeviceD0Entry é chamada em IRQL = PASSIVE_LEVEL. Você não deve tornar essa função de retorno de chamada paginável.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Versão mínima do UMDF 2,0
Cabeçalho wdfdevice.h (inclua Wdf.h)
IRQL PASSIVE_LEVEL (consulte a seção Comentários)

Confira também

EvtDeviceD0Exit