Функция UcmTcpciPortControllerStop (ucmtcpciportcontroller.h)
Указывает расширению класса UcmTcpciCx прекратить отправку аппаратных запросов к объекту контроллера порта.
Синтаксис
void UcmTcpciPortControllerStop(
UCMTCPCIPORTCONTROLLER PortControllerObject
);
Параметры
PortControllerObject
Дескриптор объекта контроллера порта, который драйвер клиента получил в предыдущем вызове UcmTcpciPortControllerCreate.
Возвращаемое значение
None
Remarks
После вызова UcmTcpciPortControllerStop драйвер клиента прекращает обработку всех запросов к объекту контроллера порта. Этот вызов является синхронным, поэтому расширение класса не будет вызывать функции обратного вызова или отправлять запросы после возврата. Драйвер не должен вызывать этот метод в обратном вызове контроллера портов или в то время, когда все неотменяемые аппаратные запросы находятся в состоянии ожидания.
Драйвер клиента вызывает этот метод из реализации обратного вызова EVT_WDF_DEVICE_RELEASE_HARDWARE . После этого он также должен вызвать WdfObjectDelete, если EVT_WDF_DEVICE_RELEASE_HARDWARE вызывается для перебалансирования ресурсов. Если это не сделать, драйвер будет утекать объекты, связанные с объектом контроллера порта, при повторной балансировке ресурсов. Для дескриптора UCMPORTCONTROLLER недостаточно для дескриптора WDFDEVICE, так как WDFDEVICE не удаляется при перерасчете ресурсов.
Если драйвер переходит в состояние Dx из-за S0-Idle, драйвер не должен вызывать этот метод из своей функции обратного вызова EVT_WDF_DEVICE_D0_EXIT . Синхронизация с состоянием питания драйвера может быть достигнута с помощью очереди, управляемой питанием, для получения запросов оборудования.
Можно безопасно вызывать UcmTcpciPortControllerStop на контроллере порта, который уже остановлен. После возврата этого метода на контроллере порта не может быть вызван ни один другой метод, кроме UcmTcpciPortControllerStart .
Драйвер клиента должен вызвать этот метод, если ему необходимо остановить все действия на контроллере портов, чтобы выполнить восстановление ошибок при обнаружении каких-либо проблем во время работы. После завершения процесса восстановления драйвер должен перезапустить контроллер порта.
Остановка контроллера завершает любой активный контракт PD и подключение Type-C.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 |
Минимальная версия сервера | Windows Server 2016 |
Целевая платформа | Windows |
Header | ucmtcpciportcontroller.h |
Библиотека | Ucmtcpcicxstub.lib |
IRQL | PASSIVE_LEVEL |