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