EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD função de retorno de chamada (ucxendpoint.h)
A implementação do driver cliente que o UCX chama para criar fluxos estáticos.
Sintaxe
EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD EvtUcxEndpointStaticStreamsAdd;
NTSTATUS EvtUcxEndpointStaticStreamsAdd(
[in] UCXENDPOINT UcxEndpoint,
[in] ULONG NumberOfStreams,
[in] PUCXSSTREAMS_INIT UcxStaticStreamsInit
)
{...}
Parâmetros
[in] UcxEndpoint
Um identificador para um objeto UCXENDPOINT que representa o ponto de extremidade.
[in] NumberOfStreams
O número de fluxos não padrão a serem criados.
[in] UcxStaticStreamsInit
Um ponteiro para uma estrutura opaca que contém informações de inicialização. Essa estrutura é gerenciada pelo UCX.
Retornar valor
Se a operação for bem-sucedida, a função de retorno de chamada deverá retornar STATUS_SUCCESS ou outro valor status para o qual NT_SUCCESS(status) é igual a TRUE. Caso contrário, ele deverá retornar um valor status para o qual NT_SUCCESS(status) é igual a FALSE.
Comentários
O driver cliente UCX registra essa função de retorno de chamada com a UCX (extensão do controlador de host USB) chamando o método UcxEndpointCreate .
Essa função de retorno de chamada cria um objeto de fluxos estáticos UCX chamando o método UcxStaticStreamsCreate . Somente um objeto de fluxos estáticos UCX pode ser associado a um único ponto de extremidade. Em seguida, o driver chama UcxStaticStreamsSetStreamInfo uma vez por fluxo para criar uma fila para cada fluxo.
Um objeto de fluxos estáticos não está habilitado até que o UCX chame a função de retorno de chamada EVT_UCX_ENDPOINT_STATIC_STREAMS_ENABLE do driver cliente.
Exemplos
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 | Valor |
---|---|
Plataforma de Destino | Windows |
Versão mínima do KMDF | 1.0 |
Versão mínima do UMDF | 2,0 |
Cabeçalho | ucxendpoint.h (inclua Ucxclass.h, Ucxendpoint.h) |
IRQL | PASSIVE_LEVEL |