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 de um 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 de 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 de estrutura 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 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 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.
Comentários
Para registrar uma função de retorno de chamada EvtDevicePrepareHardware , um driver deve chamar WdfDeviceInitSetPnpPowerEventCallbacks.
Se o driver tiver registrado uma função de retorno de chamada EvtDevicePrepareHardware 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 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 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 na função de retorno de chamada EvtDeviceD0Entry do driver.
Os identificadores ResourcesRaw e ResourcesTranslated que a função de retorno de chamada EvtDevicePrepareHardware recebe permanecem válidos até que a função de retorno de chamada EvtDeviceReleaseHardware do driver retorne.
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 gerenciamento de energia e PnP.
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çã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 |