Функция WdfPdoInitRemovePowerDependencyOnParent (wdfpdo.h)
Метод WdfPdoInitRemovePowerDependencyOnParent удаляет зависимость питания, описанную в разделе Примечания .
Синтаксис
void WdfPdoInitRemovePowerDependencyOnParent(
PWDFDEVICE_INIT DeviceInit
);
Параметры
DeviceInit
Указатель на структуру WDFDEVICE_INIT .
Возвращаемое значение
None
Remarks
Как правило, платформа требует, чтобы драйвер родительской шины ввел состояние питания устройства 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 |