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) |