EVT_MBB_DEVICE_RECEIVE_MBIM_FRAGMENT 콜백 함수(mbbcx.h)

클라이언트 드라이버의 EvtMbbDeviceReceiveMbimFragment 이벤트 콜백 함수는 MBBCx에서 보낸 이전 MBIM 제어 메시지에 대한 응답으로 디바이스에서 반환된 응답 메시지를 제공합니다. 이 콜백 함수는 MBIM 사양에 정의된 GetEncapsulatedResponse 요청과 동일합니다.

구문

EVT_MBB_DEVICE_RECEIVE_MBIM_FRAGMENT EvtMbbDeviceReceiveMbimFragment;

void EvtMbbDeviceReceiveMbimFragment(
  WDFDEVICE Device,
  MBBREQUEST ReceiveRequest
)
{...}

매개 변수

Device

WdfDeviceCreate에 대한 이전 호출에서 얻은 클라이언트 드라이버의 프레임워크 디바이스 개체에 대한 핸들입니다.

ReceiveRequest

디바이스에서 MBIM 메시지를 수신하라는 요청을 나타내는 프레임워크 개체에 대한 핸들입니다.

반환 값

없음

설명

MBBCx 클라이언트 드라이버는 MbbDeviceInitialize를 호출하여 EvtMbbDeviceReceiveMbimFragment 콜백 함수를 등록해야 합니다.

MBBCx 프레임워크는 클라이언트 드라이버가 MBIM 메시지를 디바이스에서 사용할 수 있다는 알림을 받은 후 프레임워크의 이전 MBIM 제어 메시지 요청에 대한 응답 또는 분리된 디바이스 이벤트로 이 콜백 함수를 호출합니다.

이 콜백 함수에서 클라이언트 드라이버는 MBBCx 프레임워크에서 미리 할당한 버퍼 공간에 응답 MBIM 메시지를 넣습니다. 단일 응답 메시지의 크기가 미리 할당된 버퍼의 크기보다 큰 경우 MBIM 사양에 설명된 대로 이 응답 메시지를 여러 조각화된 메시지로 분할해야 합니다. 조각화가 발생하면 MBBCx는 응답 MBIM 메시지의 모든 조각을 받을 때까지 조각당 한 번씩 이 콜백 함수를 계속 호출합니다.

미리 할당된 버퍼 공간 및 해당 크기에 액세스하려면 클라이언트 드라이버가 MbbRequestGetBuffer를 호출해야 합니다. 클라이언트 드라이버가 응답 메시지 또는 응답 메시지의 조각으로 이 버퍼 공간을 채우면 실제로 채워지는 바이트 수로 MbbRequestCompleteWithInformation 을 호출해야 합니다. 이 작업은 비동기적으로 또는 비동기적으로 수행할 수 있습니다.

자세한 내용은 MBIM 제어 메시지 처리를 참조하세요.

예제

간결하고 명확성을 위해 이 예제에서 오류 처리가 제외되었습니다.

VOID
EvtMbbDeviceReceiveMbimFragment(
    WDFDEVICE  Device,
    MBBREQUEST ReceiveRequest
)
{
    size_t filledSize = 0;
    size_t bufferSize = 0;
    PVOID buffer = MbbRequestGetBuffer(ReceiveRequest, &bufferSize);

    // 
    // Write the response MBIM message into the buffer.
    // This example uses memset as an illustration of how
    // it can being completed sycnchronously.
    //
    memset(buffer, '*', bufferSize);
    filledSize = bufferSize;

    MbbRequestCompleteWithInformation(ReceiveRequest,
        STATUS_SUCCESS,
        filledSize);
}

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10, 버전 1809
대상 플랫폼 유니버설
최소 KMDF 버전 1.27
머리글 mbbcx.h
IRQL PASSIVE_LEVEL