EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD funzione di callback (ucxendpoint.h)
Implementazione del driver client che UCX chiama per creare flussi statici.
Sintassi
EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD EvtUcxEndpointStaticStreamsAdd;
NTSTATUS EvtUcxEndpointStaticStreamsAdd(
[in] UCXENDPOINT UcxEndpoint,
[in] ULONG NumberOfStreams,
[in] PUCXSSTREAMS_INIT UcxStaticStreamsInit
)
{...}
Parametri
[in] UcxEndpoint
Handle a un oggetto UCXENDPOINT che rappresenta l'endpoint.
[in] NumberOfStreams
Numero di flussi non predefiniti da creare.
[in] UcxStaticStreamsInit
Puntatore a una struttura opaca contenente informazioni di inizializzazione. Questa struttura è gestita da UCX.
Valore restituito
Se l'operazione ha esito positivo, la funzione di callback deve restituire STATUS_SUCCESS o un altro valore di stato per cui NT_SUCCESS(stato) equivale a TRUE. In caso contrario, deve restituire un valore di stato per il quale NT_SUCCESS(stato) equivale a FALSE.
Commenti
Il driver client UCX registra questa funzione di callback con l'estensione del controller host USB (UCX) chiamando il metodo UcxEndpointCreate .
Questa funzione di callback crea un oggetto flussi statici UCX chiamando il metodo UcxStaticStreamsCreate . È possibile associare un solo oggetto di flussi statici UCX a un singolo endpoint. Il driver chiama quindi UcxStaticStreamsSetStreamInfo una volta per ogni flusso per creare una coda per ogni flusso.
Un oggetto stream statico non è abilitato finché UCX chiama la funzione di callback del driver client EVT_UCX_ENDPOINT_STATIC_STREAMS_ENABLE .
Esempio
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);
}
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Versione KMDF minima | 1,0 |
Versione UMDF minima | 2,0 |
Intestazione | ucxendpoint.h (includere Ucxclass.h, Ucxendpoint.h) |
IRQL | PASSIVE_LEVEL |