EVT_MBB_DEVICE_SEND_DEVICE_SERVICE_SESSION_DATA función de devolución de llamada (mbbcx.h)
La función de devolución de llamada de eventos EvtMbbDeviceSendServiceSessionData del controlador cliente envía los datos de sesión del servicio de dispositivo a su dispositivo módem.
Sintaxis
EVT_MBB_DEVICE_SEND_DEVICE_SERVICE_SESSION_DATA EvtMbbDeviceSendDeviceServiceSessionData;
void EvtMbbDeviceSendDeviceServiceSessionData(
WDFDEVICE Device,
DSS_SESSION_ID SessionId,
WDFMEMORY Data
)
{...}
Parámetros
Device
Identificador de un objeto de dispositivo de marco que el controlador cliente obtuvo de una llamada anterior a WdfDeviceCreate.
SessionId
Identificador de la sesión de servicio de dispositivo obtenida de una llamada anterior a MbbAdapterGetSessionId.
Data
Objeto WDFMEMORY que contiene los datos que se van a pasar al dispositivo.
Valor devuelto
None
Observaciones
MBBCx invoca la función de devolución de llamada EvtMbbDeviceSendServiceSessionData del controlador cliente cuando una aplicación envía datos DSS al dispositivo módem. Después de enviar los datos al dispositivo de forma asincrónica, el controlador cliente debe llamar a MbbDeviceSendServiceSessionDataComplete para que MBBCx pueda liberar la memoria asignada para los datos.
Ejemplo
En el ejemplo siguiente se muestra cómo un cliente podría enviar datos de DSS a su dispositivo módem. El control de errores se ha dejado fuera de este ejemplo para mayor brevedad y claridad.
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);
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 10, versión 1809 |
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.27 |
Encabezado | mbbcx.h |
IRQL | PASSIVE_LEVEL |