Compartilhar via


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

[Aplica-se a KMDF e UMDF]

A função de retorno de chamada de evento EvtDeviceD0Entry do 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 tipo WDF_POWER_DEVICE_STATEque identifica o estado de energia do dispositivo anterior.

Valor de retorno

Se a função de retorno de chamada EvtDeviceD0Entry não encontrar erros, ela deverá retornar STATUS_SUCCESS ou outro valor de status para o qual NT_SUCCESS(status) é igual a TRUE. Caso contrário, ele deverá retornar um valor de 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 após a função de retorno de chamada EvtDeviceD0Entry do retornar um valor de status para o qual NT_SUCCESS(status) é igual a FALSE.

Observações

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

Se o driver tiver registrado um EvtDeviceD0Entry função de retorno de chamada para um dispositivo, a estrutura chamará a função sempre que o dispositivo entrar em seu 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 reinicializado).
  • 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 potência).
  • 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 pela primeira vez EvtDeviceD0Entry, 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 de 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 remoção ordenada sequência para o dispositivo.
  • Se o dispositivo estiver retornando de um estado de baixa potência para seu estado de trabalho, a estrutura iniciará uma remoção surpresa sequência para o dispositivo.
A estrutura não chama a função de retorno de chamada EvtDeviceD0Exit do driver em qualquer uma 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 PnP e gerenciamento de energia.

Para obter mais informações sobre drivers que fornecem essa função de retorno de chamada, consulte Suporte a PnP e gerenciamento de energia em drivers de funções.

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 pageable.

Requisitos

Requisito Valor
da 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)

Consulte também

EvtDeviceD0Exit