EVT_MBB_DEVICE_SEND_DEVICE_SERVICE_SESSION_DATA função de retorno de chamada (mbbcx.h)
A função de retorno de chamada de evento EvtMbbDeviceSendServiceSessionData de um driver de cliente envia dados de sessão do serviço de dispositivo para seu dispositivo modem.
Sintaxe
EVT_MBB_DEVICE_SEND_DEVICE_SERVICE_SESSION_DATA EvtMbbDeviceSendDeviceServiceSessionData;
void EvtMbbDeviceSendDeviceServiceSessionData(
WDFDEVICE Device,
DSS_SESSION_ID SessionId,
WDFMEMORY Data
)
{...}
Parâmetros
Device
Um identificador para um objeto de dispositivo de estrutura que o driver cliente obteve de uma chamada anterior para WdfDeviceCreate.
SessionId
A ID da sessão de serviço do dispositivo obtida de uma chamada anterior para MbbAdapterGetSessionId.
Data
Um objeto WDFMEMORY que contém os dados a serem passados para o dispositivo.
Retornar valor
Nenhum
Comentários
O MBBCx invoca a função de retorno de chamada EvtMbbDeviceSendServiceSessionData de um driver de cliente quando um aplicativo envia dados DSS para o dispositivo modem. Depois de enviar os dados para o dispositivo de forma assíncrona, o driver cliente deve chamar MbbDeviceSendServiceSessionDataComplete para que o MBBCx possa liberar a memória alocada para os dados.
Exemplo
O exemplo a seguir mostra como um cliente pode enviar dados DSS para seu dispositivo modem. O tratamento de erros foi deixado de fora deste exemplo para obter brevidade e clareza.
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 | Valor |
---|---|
Cliente mínimo com suporte | Windows 10, versão 1809 |
Plataforma de Destino | Universal |
Versão mínima do KMDF | 1.27 |
Cabeçalho | mbbcx.h |
IRQL | PASSIVE_LEVEL |