EVT_ACX_CIRCUIT_RELEASE_HARDWARE função de retorno de chamada (acxcircuit.h)
O EVT_ACX_CIRCUIT_RELEASE_HARDWARE retorno de chamada é usado pelo driver para adicionar funcionalidade quando um ACXCIRCUIT está na fase de hardware de lançamento.
Sintaxe
EVT_ACX_CIRCUIT_RELEASE_HARDWARE EvtAcxCircuitReleaseHardware;
NTSTATUS EvtAcxCircuitReleaseHardware(
WDFDEVICE Device,
ACXCIRCUIT Circuit,
WDFCMRESLIST ResourcesTranslated
)
{...}
Parâmetros
Device
Um objeto WDFDEVICE (descrito em WDF – Resumo de Objetos de Estrutura) associado ao ACXCIRCUIT especificado.
Circuit
O objeto ACXCIRCUIT (descrito em Resumo de Objetos ACX) na fase de preparação do hardware.
ResourcesTranslated
Um identificador para um objeto WDFCMRESLIST framework resource-list que identifica os recursos de hardware traduzidos que o gerenciador de Plug and Play atribuiu ao dispositivo. Para obter mais informações sobre recursos traduzidos, consulte Recursos brutos e traduzidos.
Retornar valor
Retorna STATUS_SUCCESS
se a chamada foi bem-sucedida. Caso contrário, ele retornará um código de erro apropriado. Para obter mais informações, consulte Usando valores NTSTATUS.
Comentários
Para registrar uma função de retorno de chamada EvtAcxCircuitReleaseHardware, seu driver deve chamar AcxCircuitInitSetAcxCircuitPnpPowerCallbacks.
Se um driver tiver registrado uma função de retorno de chamada EvtAcxCircuitReleaseHardware, a estrutura a chamará durante as seguintes transições:
- Rebalanceamento de recursos
- Remoção ordenada
- Remoção surpresa
A estrutura ACX chama a função de retorno de chamada EvtAcxCircuitReleaseHardware depois que a estrutura do WDF 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.
A estrutura ACX chama a função de retorno de chamada EvtAcxCircuitReleaseHardware antes que a estrutura do WDF chame a função de retorno de chamada EvtDeviceReleaseHardware do driver.
Quando a estrutura chama o EvtAcxCircuitReleaseHardware, 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 de 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, cancelar o mapeamento de todos os recursos de memória mapeados pela função de retorno de chamada EvtAcxCircuitPrepareHardware do driver. O driver também pode usar esse retorno de chamada para executar qualquer outra atividade de gerenciamento ACXCIRCUIT que possa ser necessária no estado de desligamento. Normalmente, todas as outras operações de desligamento de hardware devem ocorrer na função de retorno de chamada EvtDeviceD0Exit do driver.
A estrutura ACX sempre chama a função de retorno de chamada EvtAcxCircuitReleaseHardware do driver se a função de retorno de chamada EvtAcxCircuitPrepareHardware do driver tiver sido chamada, a menos que o EvtAcxCircuitPrepareHardware tenha retornado um código de falha.
Para obter mais informações sobre quando a estrutura ACX e WDF chamam essas funções de retorno de chamada, consulte Cenários de gerenciamento de energia e PnP.
Para obter mais informações sobre recursos de hardware, consulte Introdução aos recursos de hardware.
Para obter mais informações sobre drivers que fornecem essa função de retorno de chamada, consulte Suporte a PnP e Gerenciamento de Energia no Driver de Funções.
Exemplo
O uso de exemplo é mostrado abaixo.
EVT_ACX_CIRCUIT_RELEASE_HARDWARE EvtCircuitReleaseHardware;
NTSTATUS
EvtCircuitReleaseHardware(
_In_ WDFDEVICE Device,
_In_ ACXCIRCUIT Circuit,
_In_ WDFCMRESLIST ResourcesTranslated
)
{
PCIRCUIT_CONTEXT circuitCtx = GetCircuitContext(Circuit);
CIpcEventReader * eventReader = circuitCtx->EventReader;
PAGED_CODE();
UNREFERENCED_PARAMETER(Device);
UNREFERENCED_PARAMETER(ResourcesTranslated);
//
// Disable 'remote' circuit notifications.
//
ASSERT(eventReader);
eventReader->DisableEvents();
// This should always succeed.
return STATUS_SUCCESS;
}
Requisitos do ACX
Versão mínima do ACX: 1.0
Para obter mais informações sobre versões do ACX, consulte Visão geral da versão do ACX.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | acxcircuit.h |
IRQL | PASSIVE_LEVEL |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de