次の方法で共有


MbbDeviceReceiveDeviceServiceSessionData 関数 (mbbcx.h)

クライアント ドライバーは MbbDeviceReceiveServiceSessionData メソッドを呼び出して、受信したデバイス サービス セッション データを MBBCx フレームワークを介してアプリケーションに渡します。

構文

void MbbDeviceReceiveDeviceServiceSessionData(
  WDFDEVICE      Device,
  DSS_SESSION_ID SessionId,
  WDFMEMORY      Data
);

パラメーター

Device

WdfDeviceCreate の以前の呼び出しから取得したクライアント ドライバーのフレームワーク デバイス オブジェクトへのハンドル。

SessionId

MbbAdapterGetSessionId の以前の呼び出しから取得したデバイス サービス セッションの ID。

Data

アプリケーションに渡すデータを含むドライバーによって割り当てられた WDFMEMORY オブジェクト。

戻り値

なし

解説

詳細については、「 デバイス サービス セッションの処理」を参照してください。

次の例は、クライアント ドライバーが受信した DSS データをフレームワークの DSS 受信ハンドラーに渡す方法を示しています。

VOID
MyReceiveDssData(
    _In_ PMY_DEVICE_CONTEXT DeviceContext,
    _In_ ULONG SessionId,
    _In_ PUCHAR InBuffer,
    _In_ ULONG InBufferSize
)
{
    NTSTATUS status = STATUS_SUCCESS;
    WDFMEMORY data;

    // Allocate the WDFMEMORY object from the received data buffer
    status = WdfMemoryAllocatePreallocated(WDF_NO_OBJECT_ATTRIBUTES,
                                            InBuffer,
                                            InBufferSize,
                                            &data);

    // Pass the received data to the framework
    if(NT_SUCCESS(status))
    {
        DeviceContext->DSSPacketsReceivedCount++;

        MbbDeviceReceiveServiceSessionData(DeviceContext->WdfDevice,
                                            SessionId,
                                            data);
        WdfObjectDelete(data);
    }
}

要件

要件
サポートされている最小のクライアント Windows 10 Version 1809
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.27
Header mbbcx.h
Library mbbcxstub.lib
IRQL PASSIVE_LEVEL