Функция 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 до запуска контроллера порта.

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10
минимальный поддерживаемый сервер Windows Server 2016
целевая платформа Виндоус
заголовка ucmtcpciportcontroller.h
библиотеки Ucmtcpcicxstub.lib
IRQL PASSIVE_LEVEL

См. также

UcmTcpciPortControllerStop