функция обратного вызова EVT_MBB_DEVICE_SEND_DEVICE_SERVICE_SESSION_DATA (mbbcx.h)
Функция обратного вызова событий драйвера клиента EvtMbbDeviceSendServiceSessionData отправляет данные сеанса службы устройств на его модемное устройство.
Синтаксис
EVT_MBB_DEVICE_SEND_DEVICE_SERVICE_SESSION_DATA EvtMbbDeviceSendDeviceServiceSessionData;
void EvtMbbDeviceSendDeviceServiceSessionData(
WDFDEVICE Device,
DSS_SESSION_ID SessionId,
WDFMEMORY Data
)
{...}
Параметры
Device
Дескриптор объекта устройства платформы, полученный из предыдущего вызова WdfDeviceCreate.
SessionId
Идентификатор сеанса службы устройств, полученного из предыдущего вызова MbbAdapterGetSessionId.
Data
Объект WDFMEMORY, содержащий данные для передачи на устройство.
Возвращаемое значение
Никакой
Замечания
MBBCx вызывает функцию обратного вызова драйвера клиента EvtMbbDeviceSendServiceSessionData при отправке данных DSS на модемное устройство. После асинхронной отправки данных на устройство драйвер клиента должен вызвать MbbDeviceSendServiceSessionDataComplete поэтому MBBCx может освободить память, выделенную для данных.
Пример
В следующем примере показано, как клиент может отправлять данные DSS на его модемное устройство. Обработка ошибок не была выполнена в этом примере для краткости и ясности.
VOID
MyEvtMbbDeviceSendServiceSessionData(
_In_ WDFDEVICE Device,
_In_ DSS_SESSION_ID SessionId,
_In_ WDFMEMORY Data
)
{
// Get the device context and NETADAPTER context
PMY_DEVICE_CONTEXT deviceContext = GetMyDeviceContext(Device);
// Set up a driver-defined DSS packet structure
PMY_DSS_PACKET packet = NULL;
// Get the data to send from the WDFMEMORY object
size_t bufferSize = 0;
PVOID buffer = WdfMemoryGetBuffer(Data,
&bufferSize);
// Populate the DSS packet
packet = MyAllocateDssPacket(Data,
buffer,
bufferSize,
SessionId);
// Send the data asynchronously, which returns STATUS_PENDING when successful
status = MyModemBusWriteData(deviceContext->BusHandle,
packet);
// Increment count of sent packets
deviceContext->DSSPacketsSentCount++;
// Clean up the memory
MbbDeviceSendServiceSessionDataComplete(Data,
status);
MyCleanupDssPacket(packet);
}
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 10 версии 1809 |
целевая платформа | Всеобщий |
минимальная версия KMDF | 1.27 |
заголовка | mbbcx.h |
IRQL | PASSIVE_LEVEL |