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 synchronously.
//
memset(buffer, '*', bufferSize);
filledSize = bufferSize;
MbbRequestCompleteWithInformation(ReceiveRequest,
STATUS_SUCCESS,
filledSize);
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10, 버전 1809 |
대상 플랫폼 | 유니버설 |
최소 KMDF 버전 | 1.27 |
머리글 | mbbcx.h |
IRQL | PASSIVE_LEVEL |