EVT_WDF_DEVICE_PREPARE_HARDWARE função de retorno de chamada (wdfdevice.h)
[Aplica-se a KMDF e UMDF]
A função de retorno de chamada de evento EvtDevicePrepareHardware do driver executa todas as operações necessárias para tornar um dispositivo acessível ao driver.
Sintaxe
EVT_WDF_DEVICE_PREPARE_HARDWARE EvtWdfDevicePrepareHardware;
NTSTATUS EvtWdfDevicePrepareHardware(
[in] WDFDEVICE Device,
[in] WDFCMRESLIST ResourcesRaw,
[in] WDFCMRESLIST ResourcesTranslated
)
{...}
Parâmetros
[in] Device
Um identificador para um objeto de dispositivo de estrutura.
[in] ResourcesRaw
Um identificador para um objeto de lista de recursos da estrutura que identifica os recursos brutos de hardware que o Gerenciador de Plug and Play atribuiu ao dispositivo.
[in] ResourcesTranslated
Um identificador para um objeto de lista de recursos da estrutura que identifica os recursos de hardware traduzidos que o Gerenciador de Plug and Play atribuiu ao dispositivo.
Valor de retorno
Se a função de retorno de chamada EvtDevicePrepareHardware 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. Não retorne STATUS_NOT_SUPPORTED.
Se NT_SUCCESS(status) for igual a FALSE, a estrutura chamará a função de retorno de chamada EvtDeviceReleaseHardware do driver.
Para obter mais informações sobre os valores retornados dessa função de retorno de chamada, consulte Relatando falhas de dispositivo.
Observações
Para registrar uma função de retorno de chamada EvtDevicePrepareHardware, um driver deve chamar WdfDeviceInitSetPnpPowerEventCallbacks.
Se o driver tiver registrado um evtDevicePrepareHardware função de retorno de chamada para um dispositivo, a estrutura chamará a função depois que o Gerenciador de Plug and Play tiver atribuído recursos de hardware ao dispositivo e depois que o dispositivo tiver inserido seu estado D0 não inicializado. (O Gerenciador de Plug and Play sempre inicia um dispositivo pai antes de iniciar os dispositivos filho desse dispositivo.)
A estrutura chama a função de retorno de chamada EvtDevicePrepareHardware do driver antes de chamar a função de retorno de chamada EvtDeviceD0Entry do driver.
A função de retorno de chamada EvtDevicePrepareHardware acessa os recursos de hardware brutos e traduzidos do dispositivo usando os identificadores de ResourcesRaw e ResourcesTranslated que ele recebe. A função de retorno de chamada pode chamar WdfCmResourceListGetCount e WdfCmResourceListGetDescriptor para percorrer as listas de recursos. Essa função de retorno de chamada não pode modificar as listas de recursos.
Para obter mais informações sobre listas de recursos e a ordem em que os recursos aparecem, consulte recursos de hardware brutos e traduzidos.
Normalmente, a função de retorno de chamada EvtDevicePrepareHardware do driver faz o seguinte, se necessário:
- Mapeia endereços de memória física para endereços virtuais para que o driver possa acessar a memória atribuída ao dispositivo
- Determina o número de revisão do dispositivo
- Configura dispositivos USB
- Obtém de interfaces definidas pelo driver de outros drivers
Normalmente, todas as outras operações de inicialização de hardware, incluindo o carregamento de firmware, devem ocorrer sempre que o dispositivo entra em seu estado de trabalho (D0) e, portanto, deve ocorrer no do driver EvtDeviceD0Entry função de retorno de chamada.
O ResourcesRaw e ResourcesTranslated manipula que a função de retorno de chamada EvtDevicePrepareHardware recebe permanece válida até que a função de retorno de chamada EvtDeviceReleaseHardware do driver seja retornada.
Para obter mais informações sobre recursos de hardware, consulte Recursos de Hardware para drivers de Framework-Based.
Para obter mais informações sobre quando a estrutura chama essa função de retorno de chamada, 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.
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 |