共用方式為


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 訊息片段的緩衝區。 一旦其裝置成功接受控制要求,或發生任何失敗狀況,客戶端驅動程序必須透過異步或同步方式呼叫 MbbRequestCompleteMbbRequestComplete,以向 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
目標平臺 普遍
最低 KMDF 版本 1.27
標頭 mbbcx.h
IRQL <= DISPATCH_LEVEL