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 |