Compartilhar via


Função WdfDeviceInitSetReleaseHardwareOrderOnFailure (wdfdevice.h)

[Aplica-se a KMDF e UMDF]

O método WdfDeviceInitSetReleaseHardwareOrderOnFailure especifica se a estrutura chama a função de retorno de chamada EvtDeviceReleaseHardware do driver imediatamente após a falha do dispositivo ou aguarda até que todos os dispositivos filho sejam removidos.

Sintaxe

void WdfDeviceInitSetReleaseHardwareOrderOnFailure(
  [in] PWDFDEVICE_INIT                       DeviceInit,
  [in] WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE ReleaseHardwareOrderOnFailure
);

Parâmetros

[in] DeviceInit

Um ponteiro para uma estrutura WDFDEVICE_INIT .

[in] ReleaseHardwareOrderOnFailure

Um enumerador do tipo WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE que especifica quando a estrutura chama a função de retorno de chamada EvtDeviceReleaseHardware do driver.

Retornar valor

Nenhum

Comentários

Normalmente, a estrutura chama a função de retorno de chamada EvtDeviceReleaseHardware de um driver depois de ter chamado a função EvtDeviceReleaseHardware para todos os dispositivos filho que o driver enumera.

No entanto, no caso de uma falha de ligar ou desligar o dispositivo, a estrutura pode chamar o EvtDeviceReleaseHardware do driver antes de chamar as funções EvtDeviceReleaseHardware para todos os dispositivos filho.

Para substituir esse comportamento padrão, um driver pode chamar WdfDeviceInitSetReleaseHardwareOrderOnFailure para especificar que, mesmo em cenários de falha do dispositivo, a estrutura sempre deve aguardar para chamar sua função EvtDeviceReleaseHardware até que tenha chamado as funções EvtDeviceReleaseHardware dos dispositivos filho.

Por exemplo, um motorista de barramento que executa o acesso de hardware em nome de seus dispositivos filho pode usar essa técnica para garantir que seus dispositivos filho não solicitem acesso ao hardware depois que a estrutura tiver chamado a função de retorno de chamada EvtDeviceReleaseHardware do driver de barramento.

Se um driver chamar WdfDeviceInitSetReleaseHardwareOrderOnFailure, ele deverá fazer isso antes de chamar WdfDeviceCreate. Para obter mais informações sobre como chamar WdfDeviceCreate, consulte Criando um objeto de dispositivo framework.

Exemplos

O exemplo de código a seguir mostra como um driver de barramento pode solicitar que a estrutura aguarde para chamar sua função de retorno de chamada EvtDeviceReleaseHardware até que todos os seus dispositivos filho sejam removidos.

WdfDeviceInitSetReleaseHardwareOrderOnFailure(
                       DeviceInit,
                       WdfReleaseHardwareOrderOnFailureAfterDescendants
                       );

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.11
Versão mínima do UMDF 2,0
Cabeçalho wdfdevice.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
Regras de conformidade de DDI DriverCreate(kmdf)

Confira também

EvtDeviceReleaseHardware

WDFDEVICE_INIT

WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE