Поделиться через


функция обратного вызова DEVICE_RESET_HANDLER (wdm.h)

Подпрограмма DeviceReset используется для сброса и восстановления неисправного устройства.

Синтаксис

DEVICE_RESET_HANDLER DeviceResetHandler;

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

Параметры

[in] InterfaceContext

Указатель на сведения о контексте для интерфейса. Вызывающий объект передает значение, передаваемое как элемент контекста контекста элемента структуры DEVICE_RESET_INTERFACE_STANDARD для интерфейса.

[in] ResetType

Тип запрашиваемого сброса. Задайте для этого параметра одно из следующих значений перечисления DEVICE_RESET_TYPE.

  • FunctionLevelDeviceReset. Укажите это значение, чтобы запросить сброс на уровне функции, который ограничен определенным устройством.

  • PlatformLevelDeviceReset. Укажите это значение, чтобы запросить сброс на уровне платформы, который влияет на определенное устройство и все остальные устройства, подключенные к нему через ту же линию питания или сброса.

Дополнительные сведения о том, как сбросы на уровне функций и уровне платформы реализуются в стеке устройств, см. в работе с GUID_DEVICE_RESET_INTERFACE_STANDARD.

[in] Flags

Установите значение 0. В настоящее время для этой подпрограммы не определены флаги.

[in, optional] ResetParameters

Если вызывающий объект запрашивает сброс устройства на уровне функции, этот необязательный параметр может указывать на структуру FUNCTION_LEVEL_DEVICE_RESET_PARAMETERS, указывающую подпрограмму обратного вызова, вызываемую при завершении сброса.

Возвращаемое значение

Эта подпрограмма возвращает STATUS_SUCCESS, если запрошенная операция выполнена успешно. В противном случае возвращается соответствующий код ошибки NTSTATUS.

Замечания

Если драйвер функции обнаруживает, что устройство работает неправильно, сначала необходимо выполнить сброс на уровне функции. Если сброс на уровне функции не устраняет проблему, драйвер может попытаться выполнить более инвазивный сброс на уровне платформы, но сброс на уровне платформы должен использоваться только в качестве окончательного варианта.

Сброс на уровне функции или сброс на уровне платформы должен выполняться в PASSIVE_LEVEL.

Дополнительные сведения о сбросах на уровне функций и уровне платформы см. в работе с GUID_DEVICE_RESET_INTERFACE_STANDARD.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10
целевая платформа Настольный
заголовка wdm.h (include Wdm.h)

См. также

Работа с GUID_DEVICE_RESET_INTERFACE_STANDARD

IRP_MN_QUERY_INTERFACE