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


Функция WdfPdoInitRemovePowerDependencyOnParent (wdfpdo.h)

Метод WdfPdoInitRemovePowerDependencyOnParent удаляет зависимость питания, описанную в разделе Примечания.

Синтаксис

void WdfPdoInitRemovePowerDependencyOnParent(
  PWDFDEVICE_INIT DeviceInit
);

Параметры

DeviceInit

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

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

Нет

Замечания

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

Однако такое поведение может не потребоваться, в частности, если дочернее устройство является виртуальным устройством, которое не представляет реального оборудования. При простое выключения S0 состояние питания дочернего устройства может не соответствовать родительскому устройству. На самом деле дочернее устройство может не иметь причин для обнаружения бездействия S0. В этом случае родительское устройство лучше перейти между D0 и Dx на основе действий ввода-вывода, а не зависеть от состояния питания дочернего устройства.

Удаление зависимости питания имеет следующие последствия для водителя шины:

  • Обратные вызовы PDO PnP/Power могут выполняться, пока родительское устройство находится в Dx.
  • Обратные вызовы PDO enable/disable-wake-at-bus могут выполняться, пока родительское устройство находится в Dx.
  • Запрос, пересылаемый из управляемой питанием очереди на PDO (если PDO является владельцем политики питания) в неуправляемую очередь на FDO может быть отправлен, пока водитель шины находится в Dx.
  • Дочерний стек выполняет переходы состояния питания независимо от родительского стека. Это включает такие сценарии, как быстрое возобновление, в котором дочерний стек может получить свой S-IRP и даже завершить обработку D-IRP, прежде чем родительский стек завершит обработку собственного D-IRP.

Чтобы удалить зависимость питания, драйвер шины может вызывать WdfPdoInitRemovePowerDependencyOnParent при создании PDO для дочернего устройства.

Эта функция не принимает никаких действий, если драйвер родительской шины не является владельцем политики питания родительского стека устройств.

Требования

Требование Ценность
Минимально поддерживаемый клиент Windows 10 версии 2004
минимальная версия KMDF 1.29
Заголовок wdfpdo.h (включая Wdf.h)
Библиотека Wdf01000.sys (KMDF)
IRQL PASSIVE_LEVEL