EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD回调函数 (ucxendpoint.h)
UCX 调用以创建静态流的客户端驱动程序实现。
语法
EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD EvtUcxEndpointStaticStreamsAdd;
NTSTATUS EvtUcxEndpointStaticStreamsAdd(
[in] UCXENDPOINT UcxEndpoint,
[in] ULONG NumberOfStreams,
[in] PUCXSSTREAMS_INIT UcxStaticStreamsInit
)
{...}
参数
[in] UcxEndpoint
表示终结点的 UCXENDPOINT 对象的句柄。
[in] NumberOfStreams
要创建的非默认流数。
[in] UcxStaticStreamsInit
指向包含初始化信息的不透明结构的指针。 此结构由 UCX 管理。
返回值
如果操作成功,则回调函数必须返回STATUS_SUCCESS或NT_SUCCESS (状态) 等于 TRUE 的另一个状态值。 否则,它必须返回NT_SUCCESS (状态) 等于 FALSE 的状态值。
注解
UCX 客户端驱动程序通过调用 UcxEndpointCreate 方法将此回调函数注册到 USB 主机控制器扩展 (UCX) 。
此回调函数通过调用 UcxStaticStreamsCreate 方法创建 UCX 静态流 对象。 只能将一个 UCX 静态流对象与单个终结点相关联。 然后,驱动程序为每个流调用 一次 UcxStaticStreamsSetStreamInfo ,为每个流创建一个队列。
在 UCX 调用客户端驱动程序的 EVT_UCX_ENDPOINT_STATIC_STREAMS_ENABLE 回调函数之前,不会启用静态流对象。
示例
NTSTATUS
Endpoint_EvtEndpointStaticStreamsAdd(
UCXENDPOINT UcxEndpoint,
ULONG NumberOfStreams,
PUCXSSTREAMS_INIT UcxStaticStreamsInit
)
{
NTSTATUS status;
WDF_OBJECT_ATTRIBUTES wdfAttributes;
UCXSSTREAMS ucxStaticStreams;
STREAM_INFO streamInfo;
ULONG streamId;
TRY {
WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&wdfAttributes, STATIC_STREAMS_CONTEXT);
status = UcxStaticStreamsCreate(UcxEndpoint,
&UcxStaticStreamsInit,
&wdfAttributes,
&ucxStaticStreams);
// … error handling …
for (i = 0, streamId = 1; i < NumberOfStreams; i += 1, streamId += 1) {
// … create WDF queue …
STREAM_INFO_INIT(&streamInfo,
wdfQueue,
streamId);
UcxStaticStreamsSetStreamInfo(ucxStaticStreams, &streamInfo);
}
要求
要求 | 值 |
---|---|
目标平台 | Windows |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
标头 | ucxendpoint.h (包括 Ucxclass.h、Ucxendpoint.h) |
IRQL | PASSIVE_LEVEL |