Функция UcmUcsiPpmStop (ucmucsippm.h)
Указывает расширению класса UcmUcsiCx прекратить отправку запросов драйверу клиента.
Синтаксис
void UcmUcsiPpmStop(
[in] UCMUCSIPPM PpmObject
);
Параметры
[in] PpmObject
Дескриптор объекта диспетчера политик платформы (PPM), который драйвер клиента получил в предыдущем вызове UcmUcsiPpmCreate.
Возвращаемое значение
Никакой
Замечания
UcmUcsiPpmStop указывает, что драйвер клиента больше не готов получать запросы из расширения класса. Расширение класса гарантирует, что после этого вызова не будут отправляться какие-либо запросы клиенту. Драйвер должен вызвать этот DDI при возникновении ошибки и хочет, чтобы расширение класса перестало отправлять запросы PPM. После завершения вызова драйвер должен снова запустить PPM с помощью UcmUcsiPpmStart.
Ожидается, что драйвер клиента вызовет этот DDI для выгрузки драйвера. Этот вызов указывает расширение класса, которое начнет слезать свои внутренние компьютеры состояния. Рекомендуется, чтобы клиент вызывал UcmUcsiPpmStop из обратного вызова EVT_WDF_DEVICE_RELEASE_HARDWARE.
Так как UcmUcsiPpmStop полагается на отправку команд UCSI в PPM через управляемый питанием WDFQUEUE, предоставляемый драйвером клиента, попытка вызова этой функции из EVT_WDF_DEVICE_D0_EXIT обратного вызова приводит к сбою. Это связано с тем, что в настоящее время шлюзы отправки для очереди закрыты.
После возврата UcmUcsiPpmStop можно вызвать UcmUcsiPpmStart, чтобы запустить PPM снова.
Требования
Требование | Ценность |
---|---|
минимальная версия KMDF | 1.27 |
минимальная версия UMDF | N/A |
заголовка | ucmucsippm.h (включая UcmUcsiCx.h) |
библиотеки | UcmUcsiCxStub.lib |
IRQL | PASSIVE_LEVEL |