Compartilhar via


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

[Aplica-se a KMDF e UMDF]

A função de retorno de chamada de evento EvtDeviceReleaseHardware de um driver executa operações que são necessárias quando um dispositivo não está mais acessível.

Sintaxe

EVT_WDF_DEVICE_RELEASE_HARDWARE EvtWdfDeviceReleaseHardware;

NTSTATUS EvtWdfDeviceReleaseHardware(
  [in] WDFDEVICE Device,
  [in] WDFCMRESLIST ResourcesTranslated
)
{...}

Parâmetros

[in] Device

Um identificador para um objeto de dispositivo de estrutura.

[in] ResourcesTranslated

Um identificador para um objeto de lista de recursos que identifica os recursos de hardware traduzidos que o gerenciador de Plug and Play atribuiu ao dispositivo.

Retornar valor

Se a função de retorno de chamada EvtDeviceReleaseHardware 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. Não retorne STATUS_NOT_SUPPORTED.

Comentários

Para registrar uma função de retorno de chamada EvtDeviceReleaseHardware , seu driver deve chamar WdfDeviceInitSetPnpPowerEventCallbacks.

Se um driver tiver registrado uma função de retorno de chamada EvtDeviceReleaseHardware , a estrutura a chamará durante as seguintes transições:

  • Rebalanceamento de recursos
  • Remoção ordenada
  • Remoção surpresa

A estrutura chama a função de retorno de chamada EvtDeviceReleaseHardware depois que a estrutura parou de enviar solicitações de E/S para o dispositivo, todas as interrupções atribuídas ao dispositivo foram desabilitadas e desconectadas e o dispositivo foi desativado.

Quando a estrutura chama o EvtDeviceReleaseHardware, o PDO para o dispositivo ainda existe e pode ser consultado quanto a informações de dispositivo disponíveis no estado desligado, por exemplo, estado de configuração PCI.

Além disso, os recursos de hardware traduzidos que a estrutura fornece para EvtDeviceReleaseHardware ainda são atribuídos ao dispositivo. A principal finalidade dessa função de retorno de chamada é liberar esses recursos e, em particular, remover qualquer recurso de memória mapeado pela função de retorno de chamada EvtDevicePrepareHardware do driver. O driver também pode usar esse retorno de chamada para executar qualquer outra atividade de gerenciamento de driver ou dispositivo que possa ser necessária no estado de desligar. Normalmente, todas as outras operações de desligamento de hardware devem ocorrer na função de retorno de chamada EvtDeviceD0Exit do driver.

A estrutura sempre chama a função de retorno de chamada EvtDeviceReleaseHardware do driver se a função de retorno de chamada EvtDevicePrepareHardware do driver tiver sido chamada, mesmo que EvtDevicePrepareHardware tenha retornado um código de falha.

Um driver para um dispositivo que tem dispositivos filho pode controlar a ordem na qual a estrutura chama as funções de retorno de chamada EvtDeviceReleaseHardware para o dispositivo pai e seus filhos chamando WdfDeviceInitSetReleaseHardwareOrderOnFailure de dentro de sua função de retorno de chamada EvtDriverDeviceAdd .

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

Para obter mais informações sobre recursos de hardware, consulte Recursos de hardware para drivers de Framework-Based.

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.

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

Confira também

EvtDevicePrepareHardware