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(status) 等於 TRUE 的另一個狀態值。 否則,它必須傳回狀態值,NT_SUCCESS(status) 等於 FALSE。
言論
UCX 用戶端驅動程式會呼叫 UcxEndpointCreate 方法,向 USB 主機控制器擴充功能 (UCX) 註冊此回呼函式。
此回呼函式會呼叫 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);
}
要求
要求 | 價值 |
---|---|
目標平臺 | 窗戶 |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
標頭 | ucxendpoint.h (include Ucxclass.h, Ucxendpoint.h) |
IRQL | PASSIVE_LEVEL |