다음을 통해 공유


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