共用方式為


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