다음을 통해 공유


MB PCO(프로토콜 구성 옵션) 작업

개요

PCO(프로토콜 구성 옵션)의 목적은 PDP(패킷 데이터 프로토콜) 컨텍스트 활성화와 연결된 외부 네트워크 프로토콜 옵션을 전송하는 것입니다. PCO 값에 대한 Windows NDIS 정의는 일반적으로 나중에 모뎀 및 네트워크에서 전체 PCO 값을 수신하기 위해 일반적이었습니다. 그러나 Windows 10 버전 1709부터 일부 모뎀은 운영자별 PCO 요소만 OS에 전달할 수 있습니다. 이 항목에서는 현재 연산자 전용 PCO 구현의 동작을 정의합니다.

흐름

PCO 값이 호스트에 전달되는 세 가지 시나리오가 있습니다.

  • 새 PCO 값이 활성화된 연결에 도착한 경우
  • 앱 또는 서비스가 모뎀에서 최신 PCO 값을 쿼리하는 경우
  • 연결이 처음으로 브리지 또는 활성화되고 PCO 값이 모뎀에 이미 있는 경우

첫 번째 시나리오의 경우 모뎀은 네트워크에서 새 PCO 값을 받을 때마다 새 PCO 값 변경을 나타내는 NDIS_STATUS_WWAN_PCO_STATUS 알림을 OS에 보내야 하며, 해당 PDN을 나타내는 적절한 NDIS 포트 번호가 있어야 합니다. 배터리가 불필요하게 소모되지 않도록 모뎀은 선택적 일시 중단 및 연결된 대기 상태의 모뎀 동작에 설명된 대로 시끄러운 알림을 피해야 합니다.

두 번째 시나리오의 경우 앱 또는 서비스가 활성화된 PDN 연결의 모뎀에서 PCO 값을 쿼리할 때 호스트는 모뎀에 OID_WWAN_PCO 쿼리 요청을 보내 모뎀에서 캐시된 최신 PCO 값을 읽습니다.

세 번째 시나리오의 경우 호스트에서 연결이 활성화되거나 브리지될 때 모뎀은 호스트가 요청한 활성화되거나 브리지된 연결에 대한 모뎀에 PCO 값이 이미 있는 경우 NDIS_STATUS_WWAN_PCO_STATUS 알림을 보내야 합니다. PDN의 해당 NDIS 포트 번호에서 알림을 전달해야 합니다.

다음 그림에서는 시나리오 흐름을 보여줍니다.

MB PCO 작업 흐름을 보여 주는 다이어그램

선택적 일시 중단 및 연결된 대기 상태의 모뎀 동작

선택적 일시 중단을 사용하도록 설정하면 모뎀은 네트워크에서 PCO 데이터 구조를 받을 때마다 OS에 알릴 수 있습니다. 그러나 모뎀은 불필요한 디바이스 절전 모드 해제를 방지해야 합니다. 그렇지 않으면 네트워크에서 시끄러운 PCO 알림이 디바이스를 자주 절전 모드에서 해제하고 불필요하게 배터리를 소모합니다.

연결된 대기 상태를 사용하도록 설정하면 모뎀은 디바이스를 절전 모드 해제할 뿐만 아니라 OS를 절전 모드에서 해제하므로 네트워크에서 PCO 데이터 구조를 수신할 때 OS에 알리면 안 됩니다. 대신 모뎀은 데이터 구조의 모든 최신 PCO 요소를 캐시하고 OS가 연결된 대기 모드를 종료하면 OS에 알려야 합니다. MBIM 모뎀의 경우 모든 PCO 데이터 구조를 캐시하고 호스트가 구독한 후에만 PCO 알림을 OS로 보내야 합니다. 이 작업은 연결된 대기 상태에서 나온 후 시스템 전원이 전체 전원으로 돌아온 경우 MBIM_CID_DEVICE_SERVICE_SUBSCRIBE_LIST CID를 사용하여 수행됩니다.

PCO 값에 따라 모뎀 다시 설정

네트워크에서 받은 PCO 값에 따라 모뎀은 다음 시나리오에서 다시 설정됩니다.

  • 사용자가 네트워크에서 PCO = 5를 받은 후 자체 활성화를 완료했습니다. 새 PCO 값(3, 0 또는 통신사 앱이 인식할 수 있는 모든 것)이 OS로 전송되고 OS는 이를 통신사 앱에 전달합니다.
  • 사용자는 PCO = 3을 받은 후 계정에 더 많은 크레딧을 추가했습니다. 새 PCO 값(0 또는 통신사 앱이 인식할 수 있는 모든 것)이 OS로 전송되고 OS가 이를 통신사 앱에 전달합니다.

호스트는 다시 설정되는 모뎀을 인식하지 못하므로 호스트의 활성화된 연결은 비활성화되지 않으며 모뎀은 다시 설정한 후 해당 PDN과의 연결을 자동으로 다시 설정해야 합니다. 연결을 설정하고 네트워크에서 새 들어오는 PCO 값을 받으면 모뎀은 호스트에 원치 않는 NDIS_STATUS_WWAN_PCO_STATUS 알림을 제공합니다.

다음 다이어그램에서는 Verizon Wireless를 예제 MO로 사용하여 이러한 시나리오 중 하나가 발생할 때 모뎀의 재설정 흐름을 보여 줍니다.

PCO 값을 기반으로 하는 MB 모뎀 재설정 프로세스를 보여 주는 다이어그램

모뎀에 대한 NDIS 인터페이스

운영자 네트워크에서 모뎀이 받은 PCO 값의 상태 및 페이로드를 쿼리하려면 OID_WWAN_PCO 참조하세요. OID_WWAN_PCO네트워크의 PCO 정보 페이로드를 나타내는 WWAN_PCO_VALUE 구조를 포함하는 NDIS_WWAN_PCO_STATUS 구조를 사용합니다.

모뎀 미니포트 드라이버가 모뎀의 현재 PCO 상태를 OS에 알리기 위해 보낸 상태 알림은 NDIS_STATUS_WWAN_PCO_STATUS 참조하세요.

모뎀에 대한 MB CID

서비스 = MBB_UUID_BASIC_CONNECT_EXT_CONSTANT

서비스 UUID = 3d01dcc5-fef5-4d05-0d3a-bef7058e9aaf

PCO에 대해 정의된 CID는 다음과 같습니다.

CID 명령 코드 최소 OS 버전
MBIM_CID_PCO 9 Windows 10, 버전 1709

MBIM_CID_PCO

이 명령은 통신사 네트워크에서 모뎀으로 캐시된 PCO 데이터를 쿼리하는 데 사용됩니다.

쿼리

InformationBuffer에는 유일한 관련 필드가 SessionIdMBIM_PCO_VALUE 포함되어 있습니다. SessionId는 향후 사용을 위해 예약되어 있으며 항상 Windows 10 버전 1709에서 0이 됩니다. 쿼리의 SessionId 는 함수에서 반환할 IP 데이터 스트림의 PCO 값을 나타냅니다.

설정

해당 사항 없음

원치 않는 이벤트

원치 않는 이벤트에는 MBIM_PCO_VALUE 포함되며 활성화된 연결에 새 PCO 값이 도착했을 때 전송됩니다.

매개 변수

작업(Operation) 설정 쿼리 알림
명령 적용할 수 없음 MBIM_PCO_VALUE 적용할 수 없음
응답 적용할 수 없음 MBIM_PCO_VALUE MBIM_PCO_VALUE

데이터 구조

MBIM_PCO_TYPE
형식 Description
MBIMPcoTypeComplete 0 전체 PCO 구조가 네트워크에서 수신된 대로 전달되도록 지정하고 헤더는 3GPP TS24.008 사양에 정의된 PCO 구조체의 옥텟 3에 프로토콜을 현실적으로 반영합니다.
MBIMPcoTypePartial 1 모뎀이 네트워크에서 받은 PCO 구조의 하위 집합만 전달되도록 지정합니다. 헤더는 3GPP TS24.008 사양에 정의된 PCO 구조체와 일치하지만 octet 3의 "구성 프로토콜"이 유효하지 않을 수 있습니다.
MBIM-PCO-TYPE
Offset 크기 필드 형식 Description
0 4 SessionId Uint32 쿼리의 SessionId는 함수에서 반환할 IP 데이터 스트림의 PCO 값을 나타냅니다.
4 4 PcoDataSize Uint32 0에서 256까지의 PcoData 길이입니다. 이 값은 쿼리에서 0이 됩니다.
8 4 PcoDataType Uint32 PCO 데이터 형식입니다. 자세한 내용은 MBIM_PCO_TYPE 참조하세요.
12 PcoDataBuffer DATABUFFER 3GPP TS24.008 사양의 PCO 구조체입니다.

상태 코드

이 CID는 제네릭 상태 코드만 사용합니다.

HLK(하드웨어 랩 키트) 테스트

HLK 설치 단계를 참조하세요.

HLK Studio에서 디바이스 셀룰러 모뎀 드라이버에 연결하고 TestPco 테스트를 실행합니다.

WinRT API

Pco

PCO 백그라운드 트리거

참고 항목

NDIS_STATUS_WWAN_PCO_STATUS

NDIS_WWAN_PCO_STATUS

WWAN_PCO_VALUE

OID_WWAN_PCO