Share via


EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD función de devolución de llamada (ucxendpoint.h)

Implementación del controlador de cliente que UCX llama a para crear flujos estáticos.

Sintaxis

EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD EvtUcxEndpointStaticStreamsAdd;

NTSTATUS EvtUcxEndpointStaticStreamsAdd(
  [in] UCXENDPOINT UcxEndpoint,
  [in] ULONG NumberOfStreams,
  [in] PUCXSSTREAMS_INIT UcxStaticStreamsInit
)
{...}

Parámetros

[in] UcxEndpoint

Identificador de un objeto UCXENDPOINT que representa el punto de conexión.

[in] NumberOfStreams

Número de secuencias no predeterminadas que se van a crear.

[in] UcxStaticStreamsInit

Puntero a una estructura opaca que contiene información de inicialización. Esta estructura se administra mediante UCX.

Valor devuelto

Si la operación se realiza correctamente, la función de devolución de llamada debe devolver STATUS_SUCCESS u otro valor de estado para el que NT_SUCCESS(status) es igual a TRUE. De lo contrario, debe devolver un valor de estado para el que NT_SUCCESS(status) es igual a FALSE.

Comentarios

El controlador cliente UCX registra esta función de devolución de llamada con la extensión del controlador de host USB (UCX) llamando al método UcxEndpointCreate .

Esta función de devolución de llamada crea un objeto de secuencias estáticas UCX llamando al método UcxStaticStreamsCreate . Solo se puede asociar un objeto de secuencias estáticas UCX a un único punto de conexión. A continuación, el controlador llama a UcxStaticStreamsSetStreamInfo una vez por secuencia para crear una cola para cada secuencia.

Un objeto de secuencias estáticas no está habilitado hasta que UCX llama a la función de devolución de llamada del controlador de cliente EVT_UCX_ENDPOINT_STATIC_STREAMS_ENABLE .

Ejemplos

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);
        }

Requisitos

Requisito Value
Plataforma de destino Windows
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado ucxendpoint.h (include Ucxclass.h, Ucxendpoint.h)
IRQL PASSIVE_LEVEL