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대한 이전 호출에서 얻은 디바이스 서비스 세션의 ID입니다.
Data
디바이스에 전달할 데이터를 포함하는 WDFMEMORY 개체입니다.
반환 값
없음
발언
MBBCx는 애플리케이션이 DSS 데이터를 모뎀 디바이스로 보낼 때 클라이언트 드라이버의 EvtMbbDeviceSendServiceSessionData 콜백 함수를 호출합니다. 비동기적으로 디바이스에 데이터를 보낸 후 클라이언트 드라이버는 MBBCx가 데이터에 할당된 메모리를 해제할 수 있도록 MbbDeviceSendServiceSessionDataComplete 호출해야 합니다.
본보기
다음 예제에서는 클라이언트가 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 |