EVT_MBB_DEVICE_SEND_MBIM_FRAGMENT回呼函式 (mbbcx.h)
用戶端驅動程式的 EvtMbbDeviceSendMbimFragment 事件回呼函式會指示其裝置執行 MBIM 控制訊息所指定的工作。 這個回呼函式相當於 MBIM 規格中定義的 SendEncapsulatedCommand 要求。
語法
EVT_MBB_DEVICE_SEND_MBIM_FRAGMENT EvtMbbDeviceSendMbimFragment;
void EvtMbbDeviceSendMbimFragment(
WDFDEVICE Device,
MBBREQUEST SendRequest
)
{...}
參數
Device
用戶端驅動程式從先前呼叫 WdfDeviceCreate 取得的架構裝置物件的句柄。
SendRequest
架構物件的句柄,表示傳送片段 MBIM 訊息給裝置的要求。
傳回值
無
備註
MBBCx 用戶端驅動程序必須藉由呼叫 MbbDeviceInitialize 來註冊 EvtMbbDeviceSendMbimFragment 回呼函式。
當 MBBCx 架構想要以 MBIM 控制件訊息格式發出命令給用戶端驅動程式時,會呼叫此回呼函式。 如果 MBIM 控件訊息的大小大於用戶端驅動程式在 MBB_DEVICE_MBIM_PARAMETERS 結構中設定的最大片段大小,MBBCx 架構會將 MBIM 控件訊息分割成多個片段訊息,並針對每個片段訊息呼叫此回呼函式一次。
若要取得傳送的實際 MBIM 訊息片段,用戶端驅動程式應該呼叫 MbbRequestGetBuffer 來取得儲存 MBIM 訊息片段的緩衝區。 一旦裝置成功接受控制要求,或發生任何失敗狀況之後,用戶端驅動程序必須透過異步或同步呼叫 MBBRequestComplete 來認可 MBBCx。
如需詳細資訊,請參閱 處理 MBIM 控制訊息。
範例
錯誤處理程式代碼已離開此範例,以求簡潔明瞭。
VOID
EvtMbbDeviceSendMbimFragment(
WDFDEVICE Device,
MBBREQUEST SendRequest
)
{
// The client driver-specified framework object context
PMY_DEVICE_CONTEXT myContext = GetMyDeviceContext(Device);
size_t bufferSize = 0;
PVOID buffer = MbbRequestGetBuffer(SendRequest, &bufferSize);
// This client driver example uses asynchronous completion
auto myDeviceSendCompletionRoutine = [](MBBREQUEST SendRequest, NTSTATUS NtStatus)
{
//Acknowledge back to MBBCx
MbbRequestComplete(SendRequest, NtStatus);
};
// The client driver-specified function call into its device
NTSTATUS sendStatus = MyDeviceAsyncSend(
// The client driver-specific handle
myContext->MyDeviceHandle,
// The context for completion
SendRequest,
// MBIM message
buffer,
// MBIM message size
bufferSize,
// Can be used for logging purpose, for example
MbbRequestGetActivityId(SendRequest),
// The client driver-specific completion routine
myDeviceSendCompletionRoutine);
if (sendStatus != STATUS_PENDING)
{
// Acknowledge back to MBBCx
myDeviceSendCompletionRoutine(
SendRequest,
sendStatus);
}
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 版本 1809 |
目標平台 | Universal |
最小 KMDF 版本 | 1.27 |
標頭 | mbbcx.h |
IRQL | <= DISPATCH_LEVEL |