Функция 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 |