Поделиться через


Функция MbbDeviceReceiveDeviceServiceSessionData (mbbcx.h)

Клиентские драйверы вызывают метод MbbDeviceReceiveServiceSessionData для передачи полученных данных сеанса службы устройства в приложение через платформу MBBCx.

Синтаксис

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

Параметры

Device

Дескриптор объекта устройства платформы, полученного драйвером клиента из предыдущего вызова WdfDeviceCreate.

SessionId

Идентификатор сеанса службы устройства, полученный из предыдущего вызова MbbAdapterGetSessionId.

Data

Выделенный драйвером объект WDFMEMORY, содержащий данные для передачи в приложение.

Возвращаемое значение

None

Remarks

Дополнительные сведения см. в разделе Обработка сеансов службы устройств.

Пример

В следующем примере показано, как драйвер клиента может передавать полученные данные 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, версия 1809
Целевая платформа Универсальное
Минимальная версия KMDF 1.27
Верхняя часть mbbcx.h
Библиотека mbbcxstub.lib
IRQL PASSIVE_LEVEL