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