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


Функция WdfDeviceInitSetReleaseHardwareOrderOnFailure (wdfdevice.h)

[Применимо к KMDF и UMDF]

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

Синтаксис

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

Параметры

[in] DeviceInit

Указатель на структуру WDFDEVICE_INIT .

[in] ReleaseHardwareOrderOnFailure

Перечислитель WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE, указывающий, когда платформа вызывает функцию обратного вызова EvtDeviceReleaseHardware драйвера.

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

None

Remarks

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

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

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

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

Если драйвер вызывает WdfDeviceInitSetReleaseHardwareOrderOnFailure, он должен сделать это перед вызовом WdfDeviceCreate. Дополнительные сведения о вызове WdfDeviceCreate см. в разделе Создание объекта устройства платформы.

Примеры

В следующем примере кода показано, как драйвер шины может запросить, чтобы платформа ждала вызова функции обратного вызова EvtDeviceReleaseHardware , пока не будут удалены все дочерние устройства.

WdfDeviceInitSetReleaseHardwareOrderOnFailure(
                       DeviceInit,
                       WdfReleaseHardwareOrderOnFailureAfterDescendants
                       );

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1.11
Минимальная версия UMDF 2,0
Верхняя часть wdfdevice.h (включая Wdf.h)
Библиотека Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
Правила соответствия DDI DriverCreate(kmdf)

См. также раздел

EvtDeviceReleaseHardware

WDFDEVICE_INIT

WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE