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 메서드를 호출하여 이 콜백 함수를 UCX(USB 호스트 컨트롤러 확장)에 등록합니다.

이 콜백 함수는 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