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


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

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

Синтаксис

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

Параметры

Device

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

SessionId

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

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 версии 1809
целевая платформа Всеобщий
минимальная версия KMDF 1.27
заголовка mbbcx.h
библиотеки mbbcxstub.lib
IRQL PASSIVE_LEVEL