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 物件。
傳回值
無
備註
當應用程式將 DSS 資料向下傳送至數據機裝置時,MBBCx 會叫用客戶端驅動程式的 EvtMbbDeviceSendServiceSessionData 回呼函式。 以異步方式將數據傳送至裝置之後,用戶端驅動程序必須呼叫 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 |
目標平台 | Universal |
最小 KMDF 版本 | 1.27 |
標頭 | mbbcx.h |
IRQL | PASSIVE_LEVEL |