UcmTcpciPortControllerStart 函数 (ucmtcpciportcontroller.h)

向 UcmTcpciCx 类扩展指示客户端驱动程序现在已准备好为端口控制器服务硬件请求。

语法

NTSTATUS UcmTcpciPortControllerStart(
  UCMTCPCIPORTCONTROLLER PortControllerObject
);

参数

PortControllerObject

处理客户端驱动程序在上一次调用中接收的端口控制器对象,UcmTcpciPortControllerCreate

返回值

(NTSTATUS)如果作成功,该方法将返回STATUS_SUCCESS。 否则,此方法可能会返回适当的 NTSTATUS 错误代码。

返回代码 描述
STATUS_INVALID_DEVICE_REQUEST
端口控制器已处于“开始”状态。
STATUS_INVALID_HANDLE
未通过调用 UcmTcpciPortControllerSetHardwareRequestQueue来设置硬件请求队列。

言论

客户端驱动程序收到端口控制器对象的 UCMPORTCONTROLLER 句柄后,驱动程序将调用此方法以通知类扩展驱动程序可以开始接收硬件请求。 此方法调用允许客户端驱动程序对其框架上下文空间在端口控制器对象上执行初始化,然后类扩展才能调用驱动程序的回调函数或端口控制器对象的请求。 驱动程序无法调用 UcmTcpciPortControllerAlertUcmTcpciPortControllerStop,直到端口控制器启动。

客户端驱动程序在调用 UcmTcpciPortControllerCreate 并初始化其上下文结构后立即调用此方法,如果 WDF_OBJECT_ATTRIBUTES 结构中指定为 属性 参数值。 驱动程序必须假定类扩展即使在 UcmTcpciPortControllerStart 从此 DDI 调用中返回之前,类扩展也可以提交请求。 如果驱动程序在调用 UcmTcpciPortControllerStart 时持有锁,并且还尝试在处理硬件请求时获取锁(在其硬件请求队列回调中),则可能会导致死锁。

调用 UcmTcpciPortControllerStart 启动已处于“开始”状态的端口控制器对象,会导致错误。

启动时,如果 BIOS 已协商 PD 合同,则 UcmTcpciCx 从未附加的状态开始。

要求

要求 价值
最低支持的客户端 Windows 10
支持的最低服务器 Windows Server 2016
目标平台 窗户
标头 ucmtcpciportcontroller.h
Ucmtcpcicxstub.lib
IRQL PASSIVE_LEVEL

另请参阅

UcmTcpciPortControllerStop