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 que é passado como o Context membro da estrutura DEVICE_RESET_INTERFACE_STANDARD da 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, que afeta um dispositivo específico e todos os outros dispositivos que estão conectados a ele por meio do mesmo power rail 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

Definido 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.

Valor de retorno

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.

Observações

Se um driver de função detectar que o dispositivo não está funcionando corretamente, ele deve primeiro tentar uma redefinição no nível da função. Se uma redefinição no nível de 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ó deve ser usada como a opção final.

Uma redefinição no nível da função ou uma 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
de cliente com suporte mínimo Windows 10
da Plataforma de Destino Área de trabalho
cabeçalho wdm.h (inclua Wdm.h)

Consulte também

Trabalhando com o GUID_DEVICE_RESET_INTERFACE_STANDARD

IRP_MN_QUERY_INTERFACE