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