Функция UcmTcpciPortControllerStart (ucmtcpciportcontroller.h)

Указывает расширению класса UcmTcpciCx, что драйвер клиента теперь готов к обслуживанию запросов оборудования для контроллера портов.

Синтаксис

NTSTATUS UcmTcpciPortControllerStart(
  UCMTCPCIPORTCONTROLLER PortControllerObject
);

Параметры

PortControllerObject

Обработайте объект контроллера портов, полученный драйвером клиента в предыдущем вызове UcmTcpciPortControllerCreate.

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

(NTSTATUS) Метод возвращает STATUS_SUCCESS, если операция завершается успешно. В противном случае этот метод может вернуть соответствующий код ошибки NTSTATUS .

Код возврата Описание
STATUS_INVALID_DEVICE_REQUEST
Контроллер порта уже находится в состоянии запуска.
STATUS_INVALID_HANDLE
Очередь запросов оборудования не была задана путем вызова UcmTcpciPortControllerSetHardwareRequestQueue.

Комментарии

После того как драйвер клиента получит дескриптор UCMPORTCONTROLLER для объекта контроллера портов, драйвер вызывает этот метод, чтобы уведомить расширение класса о том, что драйвер может начать получать аппаратные запросы. Этот вызов метода позволяет драйверу клиента выполнять инициализацию пространства контекста платформы в объекте контроллера портов, прежде чем расширение класса может вызвать функции обратного вызова драйвера или запросы для объекта контроллера порта. Драйвер не может вызвать UcmTcpciPortControllerAlert или UcmTcpciPortControllerStop до запуска контроллера порта.

Драйвер клиента вызывает этот метод сразу после вызова UcmTcpciPortControllerCreate и инициализации структуры контекста, если он был указан в структуре WDF_OBJECT_ATTRIBUTES в качестве значения параметра Attributes . Драйвер должен предположить, что расширение класса может отправлять запросы еще до возвращения UcmTcpciPortControllerStart , т. е. из этого вызова DDI. Если драйвер удерживает блокировку при вызове UcmTcpciPortControllerStart , а также пытается получить блокировку при обработке аппаратного запроса (в обратном вызове очереди запросов оборудования), это может привести к взаимоблокировке.

Вызов UcmTcpciPortControllerStart для запуска объекта контроллера портов уже в состоянии запуска приводит к ошибке.

При загрузке, если BIOS уже согласовал контракт PD, UcmTcpciCx начинается с неподключаемого состояния.

Требования

   
Минимальная версия клиента Windows 10
Минимальная версия сервера Windows Server 2016
Целевая платформа Windows
Header ucmtcpciportcontroller.h
Библиотека Ucmtcpcicxstub.lib
IRQL PASSIVE_LEVEL

См. также раздел

UcmTcpciPortControllerStop