Compartilhar via


DEVICE_RESET_HANDLER função de retorno de chamada (wdm.h)

A rotina DeviceReset é usada para redefinir e recuperar um dispositivo com defeito.

Sintaxe

DEVICE_RESET_HANDLER DeviceResetHandler;

NTSTATUS DeviceResetHandler(
  [in]           PVOID InterfaceContext,
  [in]           DEVICE_RESET_TYPE ResetType,
  [in]           ULONG Flags,
  [in, optional] PVOID ResetParameters
)
{...}

Parâmetros

[in] InterfaceContext

Um ponteiro para informações de contexto específicas da interface. O chamador passa o valor passado como o membro Context da estrutura DEVICE_RESET_INTERFACE_STANDARD para a interface.

[in] ResetType

O tipo de redefinição que está sendo solicitado. Defina esse parâmetro como um dos seguintes valores de enumeração DEVICE_RESET_TYPE .

  • FunctionLevelDeviceReset. Especifique esse valor para solicitar uma redefinição no nível da função, que é restrita a um dispositivo específico.

  • PlatformLevelDeviceReset. Especifique esse valor para solicitar uma redefinição no nível da plataforma, o que afeta um dispositivo específico e todos os outros dispositivos conectados a ele por meio do mesmo trilho de alimentação ou linha de redefinição.

Para obter mais informações sobre como as redefinições no nível da função e no nível da plataforma são implementadas na pilha de dispositivos, consulte Trabalhando com o GUID_DEVICE_RESET_INTERFACE_STANDARD.

[in] Flags

Defina como 0. Atualmente, nenhum sinalizador é definido para essa rotina.

[in, optional] ResetParameters

Se o chamador estiver solicitando uma redefinição de dispositivo no nível da função, esse parâmetro opcional poderá apontar para uma estrutura FUNCTION_LEVEL_DEVICE_RESET_PARAMETERS que especifica uma rotina de retorno de chamada que é chamada quando a redefinição é concluída.

Retornar valor

Essa rotina retornará STATUS_SUCCESS se a operação solicitada for bem-sucedida. Caso contrário, ele retornará um código de erro NTSTATUS apropriado.

Comentários

Se um driver de função detectar que o dispositivo não está funcionando corretamente, ele deverá primeiro tentar uma redefinição no nível da função. Se uma redefinição no nível da função não corrigir o problema, o driver poderá tentar uma redefinição mais invasiva no nível da plataforma, mas uma redefinição no nível da plataforma só deverá ser usada como a opção final.

Uma redefinição no nível da função ou redefinição no nível da plataforma deve ser executada em PASSIVE_LEVEL.

Para obter mais informações sobre redefinições no nível da função e no nível da plataforma, consulte Trabalhando com o GUID_DEVICE_RESET_INTERFACE_STANDARD.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10
Plataforma de Destino Área de Trabalho
Cabeçalho wdm.h (include Wdm.h)

Confira também

Trabalhando com o GUID_DEVICE_RESET_INTERFACE_STANDARD

IRP_MN_QUERY_INTERFACE