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 |
目標平臺 | 普遍 |
最低 KMDF 版本 | 1.27 |
標頭 | mbbcx.h |
IRQL | PASSIVE_LEVEL |