MB UICC 애플리케이션 및 파일 시스템 액세스
개요
이 항목에서는 UICC 스마트 카드 애플리케이션 및 파일 시스템에 액세스할 수 있도록 MBIM(모바일 광대역 인터페이스 모델) 인터페이스에 대한 확장을 지정합니다. 이 MBIM 확장은 UICC의 ETSI TS 102 221 기술 사양 규격 애플리케이션 및 파일 시스템에 대한 논리적 액세스를 노출하며 Windows 10 버전 1903 이상에서 지원됩니다.
UICC 액세스 및 보안
UICC는 파일 시스템을 제공하고 동시에 실행할 수 있는 애플리케이션 집합을 지원합니다. 여기에는 UMTS용 USIM, CDMA용 CSIM 및 IMS용 ISIM이 포함됩니다. SIM은 이러한 애플리케이션(GSM용) 중 하나로 모델링할 수 있는 UICC의 레거시 부분입니다.
다음 다이어그램은 ETSI TS 102 221 기술 사양의 섹션 8.1에서 예제 카드 애플리케이션 구조를 보여 줍니다.
UICC 파일 시스템은 디렉터리 트리의 포리스트로 간주될 수 있습니다. 레거시 SIM 트리는 MF(마스터 파일)에 뿌리를 두고 있으며 다양한 유형의 정보를 포함하는 EF(요소 파일)를 포함하는 최대 2개의 하위 디렉터리(전용 파일 또는 DF)를 포함합니다. SIM은 MF에서 DF를 정의하며, 그 중 하나인 DFTelecom에는 공통 전화 번호부와 같은 여러 액세스 유형에 공통적인 정보가 포함되어 있습니다. 추가 애플리케이션은 각각 자체 ADF(애플리케이션 디렉터리 파일)에 뿌리를 둔 별도의 트리로 효과적으로 구현됩니다. 각 ADF는 최대 128비트 길이일 수 있는 애플리케이션 식별자에 의해 식별됩니다. 카드 루트 아래의 파일(다이어그램의 MF 아래에 있는 EFDir)에는 애플리케이션 이름과 해당 식별자가 포함됩니다. 트리(MF 또는 ADF) 내에서 파일 ID가 16비트 정수인 파일 ID의 경로로 DF 및 DF를 식별할 수 있습니다.
NDIS 인터페이스 확장
UICC 애플리케이션 및 파일 시스템 액세스를 지원하도록 다음 OID가 정의되었습니다.
- OID_WWAN_UICC_APP_LIST
- OID_WWAN_UICC_FILE_STATUS
- OID_WWAN_UICC_ACCESS_BINARY
- OID_WWAN_UICC_ACCESS_RECORD
- OID_WWAN_PIN_EX2
MBIM 서비스 및 CID 값
서비스 이름 | 범용 고유 식별자 (UUID) | UUID 값 |
---|---|---|
Microsoft 하위 수준 UICC 액세스 | UUID_MS_UICC_LOW_LEVEL | C2F6588E-F037-4BC9-8665-F4D44BD09367 |
Microsoft 기본 IP 연결 확장 | UUID_BASIC_CONNECT_EXTENSIONS | 3D01DCC5-FEF5-4D05-9D3A-BEF7058E9AAF |
다음 표에서는 각 CID에 대한 UUID 및 명령 코드와 CID가 Set, Query 또는 Event(알림) 요청을 지원하는지 여부를 지정합니다. 매개 변수, 데이터 구조 및 알림에 대한 자세한 내용은 이 항목 내의 각 CID 개별 섹션을 참조하세요.
CID | 범용 고유 식별자 (UUID) | 명령 코드 | 설정 | 쿼리 | 알림 |
---|---|---|---|---|---|
MBIM_CID_MS_UICC_APP_LIST | UUID_MS_UICC_LOW_LEVEL | 7 | N | Y | N |
MBIM_CID_MS_UICC_FILE_STATUS | UUID_MS_UICC_LOW_LEVEL | 8 | N | Y | N |
MBIM_CID_MS_UICC_ACCESS_BINARY | UUID_MS_UICC_LOW_LEVEL | 9 | Y | Y | N |
MBIM_CID_MS_UICC_ACCESS_RECORD | UUID_MS_UICC_LOW_LEVEL | 10 | Y | Y | N |
MBIM_CID_MS_PIN_EX | UUID_BASIC_CONNECT_EXTENSIONS | 14 | Y | Y | N |
MBIM_CID_MS_UICC_APP_LIST
이 CID는 UICC의 애플리케이션 목록과 해당 애플리케이션에 대한 정보를 검색합니다. 모뎀의 UICC가 완전히 초기화되고 통신사에 등록할 준비가 되면 등록을 위해 UICC 애플리케이션을 선택해야 하며, 이 CID를 사용하는 쿼리는 응답에 사용된 MBIM_UICC_APP_LIST 구조의 ActiveAppIndex 필드에서 선택한 애플리케이션을 반환해야 합니다.
매개 변수
연산 | 설정 | 쿼리 | 알림 |
---|---|---|---|
명령 | 해당 없음 | 비어 있음 | 해당 없음 |
Response | 해당 없음 | MBIM_UICC_APP_LIST | 해당 없음 |
쿼리
MBIM_COMMAND_MSG InformationBuffer가 비어 있습니다.
설정
해당 없음.
Response
MBIM_COMMAND_DONE InformationBuffer에는 다음과 같은 MBIM_UICC_APP_LIST 구조가 포함되어 있습니다.
MBIM_UICC_APP_LIST(버전 1)
Offset | 크기 | 필드 | 형식 | 설명 |
---|---|---|---|---|
0 | 4 | 버전 | UINT32 | 다음 구조체의 버전 번호입니다. 이 구조체의 버전 1에서는 이 필드를 1로 설정해야 합니다. |
4 | 4 | AppCount | UINT32 | 이 응답에서 반환되는 UICC 애플리케이션 MBIM_UICC_APP_INFO 구조체의 수입니다. |
8 | 4 | ActiveAppIndex | UINT32(0..NumApp - 1) | 모뎀에서 모바일 네트워크에 등록하기 위해 선택한 애플리케이션의 인덱스입니다. 이 필드는 0과 AppCount - 1 사이여야 합니다. 이 응답에서 반환된 애플리케이션 배열을 인덱싱합니다. 등록할 애플리케이션이 선택되지 않은 경우 이 필드에는 0xFFFFFFFF 포함됩니다. |
12 | 4 | AppListSize | UINT32 | 앱 목록 데이터의 크기(바이트)입니다. |
8*AppCount | AppList | OL_PAIR_LIST | 쌍의 첫 번째 요소는 DataBuffer에서 앱 정보의 오프셋이 있는 4바이트 필드입니다. 쌍의 두 번째 요소는 앱 정보의 크기가 있는 4 바이트 필드입니다. | |
AppListSize | DataBuffer | DATABUFFER | AppCount MBIM_UICC_APP_INFO 구조체의 배열입니다 * . |
MBIM_UICC_APP_INFO
Offset | 크기 | 필드 | 형식 | 설명 |
---|---|---|---|---|
0 | 4 | AppType | MBIM_UICC_APP_TYPE | UICC 애플리케이션의 형식입니다. |
4 | 4 | AppIdOffset | OFFSET | 데이터 버퍼의 애플리케이션 ID에 대한 오프셋입니다. 첫 번째 AppIdSize 바이트만 의미가 있습니다. 애플리케이션 ID가 MBIM_MAXLENGTH_APPID 바이트보다 긴 경우 AppIdSize는 실제 길이를 지정하지만 첫 번째 MBIM_MAXLENGTH_APPID 바이트만 이 필드에 있습니다. 이 필드는 AppType이 MBIMUiccAppTypeMf, MBIMUiccAppTypeMfSIM 또는 MBIMUiccAppTypeMfRUIM이 아닌 경우에만 유효합니다. |
8 | 4 | AppIdSize | SIZE(0..16) | ETSI TS 102 221 기술 사양의 섹션 8.3에 정의된 애플리케이션 ID의 크기(바이트)입니다. AppIdSize는 16보다 큰 숫자를 포함할 수 있지만, 이 경우 처음 16(MBIM_MAXLENGTH_APPID) 바이트만 데이터 버퍼에 있습니다. 이 필드는 MBIMUiccAppTypeMf, MBIMUiccAppTypeMfSIM 또는 MBIMUiccAppTypeMfRUIM 앱 형식에 대해 0으로 설정됩니다. |
12 | AppNameOffset | OFFSET | 데이터 버퍼의 애플리케이션 이름에 대한 오프셋입니다. 애플리케이션의 이름을 지정하는 UTF-8 문자열입니다. 이 필드의 길이는 AppNameLength로 지정됩니다. 길이가 MBIM_MAXLENGTH_APPNAME 바이트보다 크거나 같으면 이 필드에는 이름의 첫 번째 MBIM_MAXLENGTH_APPNAME-1바이트가 포함됩니다. 문자열은 항상 null로 종료됩니다. | |
16 | 4 | AppNameLength | SIZE(0..256) | 애플리케이션 이름의 길이(바이트)입니다. AppNameLength는 256보다 크거나 같은 숫자를 포함할 수 있지만 이러한 경우 처음 255바이트(MBIM_MAXLENGTH_APPNAME - 1) 바이트만 데이터 버퍼에 있습니다. |
20 | 4 | NumPinKeyRefs | SIZE(0..8) | 애플리케이션 PIN 키 참조 수입니다. 즉, 유효한 PinKeyRef의 요소 수입니다. 가상 R-UIM의 애플리케이션에는 PIN 키 참조가 없습니다. |
24 | 4 | KeyRefOffset | OFFSET | DataBuffer에서 PinKeyRef의 오프셋입니다. PinKeyRef는 ETSI TS 102 221 기술 사양의 표 9.3 및 섹션 9.4.2에 정의된 대로 다양한 수준의 확인(PIN1, PIN2 및 범용 PIN에 대한 키)에 대한 애플리케이션의 PIN 키 참조를 지정하는 바이트 배열입니다. 단일 확인 카드 또는 다른 애플리케이션에 대해 다른 애플리케이션 키를 지원하지 않는 MBB 드라이버 및/또는 모뎀의 경우 PinKeyRef 필드의 첫 번째 바이트는 0X01(PIN1)이어야 하고 두 번째 바이트는 ETSI TS 102 221의 섹션 9.5.1에 설명된 대로 0X81(PIN2)이어야 합니다. |
28 | 4 | KeyRefSize | SIZE(0..8) | PinKeyRef의 크기입니다. |
32 | DataBuffer | DATABUFFER | 단일 확인 카드의 AppId, AppName 및 PinKeyRef.를 포함하는 데이터 버퍼 또는 다른 애플리케이션에 대해 다른 애플리케이션 키를 지원하지 않는 MBB 드라이버 및/또는 모뎀은 이 필드를 0x01 합니다. |
MBIM_UICC_APP_TYPE
Type | 값 | 설명 |
---|---|---|
MBIMUiccAppTypeUnknown | 0 | 알 수 없는 유형입니다. |
MBIMUiccAppTypeMf | 1 | MF에 루팅된 레거시 SIM 디렉터리입니다. |
MBIMUiccAppTypeMfSIM | 2 | DF_GSM 루팅된 레거시 SIM 디렉터리입니다. |
MBIMUiccAppTypeMfRUIM | 3 | DF_CDMA 루팅된 레거시 SIM 디렉터리입니다. |
MBIMUiccAppTypeUSIM | 4 | USIM 애플리케이션. |
MBIMUiccAppTypeCSIM | 5 | CSIM 애플리케이션. |
MBIMUiccAppTypeISIM | 6 | ISIM 애플리케이션. |
상수
다음 상수는 MBIM_CID_MS_UICC_APP_INFO 대해 정의됩니다.
const int MBIM_MAXLENGTH_APPID = 32
const int MBIM_MAXLENGTH_APPNAME = 256
const int MBIM_MAXNUM_PINREF = 8
원치 않는 이벤트
해당 없음.
상태 코드
다음 상태 코드가 적용됩니다.
상태 코드 | 설명 |
---|---|
MBIM_STATUS_SUCCESS | 모든 명령에 대해 정의된 기본 MBIM 상태입니다. |
MBIM_STATUS_BUSY | 모든 명령에 대해 정의된 기본 MBIM 상태입니다. |
MBIM_STATUS_FAILURE | 모든 명령에 대해 정의된 기본 MBIM 상태입니다. |
MBIM_STATUS_NO_DEVICE_SUPPORT | 모든 명령에 대해 정의된 기본 MBIM 상태입니다. |
MBIM_STATUS_SIM_NOT_INSERTED | UICC가 없으므로 UICC 작업을 수행할 수 없습니다. |
MBIM_STATUS_BAD_SIM | UICC가 오류 상태이므로 UICC 작업을 수행할 수 없습니다. |
MBIM_STATUS_NOT_INITIALIZED | UICC가 아직 완전히 초기화되지 않았기 때문에 UICC 작업을 수행할 수 없습니다. |
MBIM_CID_MS_UICC_FILE_STATUS
이 CID는 지정된 UICC 파일에 대한 정보를 검색합니다.
매개 변수
연산 | 설정 | 쿼리 | 알림 |
---|---|---|---|
명령 | 해당 없음 | MBIM_UICC_FILE_PATH | 해당 없음 |
Response | 해당 없음 | MBIM_UICC_FILE_STATUS | 해당 없음 |
쿼리
MBIM_COMMAND_MSG InformationBuffer는 대상 EF를 MBIM_UICC_FILE_PATH 구조로 포함합니다.
MBIM_UICC_FILE_PATH(버전 1)
Offset | 크기 | 필드 | 형식 | 설명 |
---|---|---|---|---|
0 | 4 | 버전 | UINT32 | 다음 구조체의 버전 번호입니다. 이 구조체의 버전 1에서는 이 필드가 1이어야 합니다. |
4 | 4 | AppIdOffset | OFFSET | 이 구조의 시작 부분에서 애플리케이션 ID를 포함하는 버퍼로 계산된 오프셋(바이트)입니다. |
8 | 4 | AppIdSize | SIZE(0..16) | ETSI TS 102 221 기술 사양의 섹션 8.3에 정의된 애플리케이션 ID의 크기(바이트)입니다. 2G 카드의 경우 이 필드는 0으로 설정해야 합니다. |
12 | 4 | FilePathOffset | OFFSET | 이 구조체의 시작 부분에서 파일 경로를 포함하는 버퍼로 계산된 오프셋(바이트)입니다. 파일 경로는 16비트 파일 ID의 배열입니다. 첫 번째 ID는 0x7FFF 또는 0x3F00. 첫 번째 ID가 0x7FFF 경우 경로는 AppId에서 지정한 애플리케이션의 ADF를 기준으로 합니다. 그렇지 않으면 MF에서 시작하는 절대 경로입니다. |
16 | 4 | FilePathSize | SIZE(0..8) | 파일 경로의 크기(바이트)입니다. |
20 | DataBuffer | DATABUFFER | AppId 및 FilePath를 포함하는 데이터 버퍼입니다. |
설정
해당 없음.
Response
다음 MBIM_UICC_FILE_STATUS 구조체는 InformationBuffer에 사용됩니다.
MBIM_UICC_FILE_STATUS(버전 1)
Offset | 크기 | 필드 | 형식 | 설명 |
---|---|---|---|---|
0 | 4 | 버전 | UINT32 | 다음 구조체의 버전 번호입니다. 이 구조체의 버전 1에서는 이 필드가 1이어야 합니다. |
4 | 4 | StatusWord1 | UINT32(0..256) | UICC 명령과 관련된 반환 매개 변수입니다. |
8 | 4 | StatusWord2 | UINT32(0..256) | UICC 명령과 관련된 반환 매개 변수입니다. |
12 | 4 | FileAccessibility | MBIM_UICC_FILE_ACCESSIBILITY | UICC 파일 접근성입니다. |
16 | 4 | FileType | MBIM_UICC_FILE_TYPE | UICC 파일 형식입니다. |
20 | 4 | FileStructure | MBIM_UICC_FILE_STRUCTURE | UICC 파일 구조입니다. |
24 | 4 | ItemCount | UINT32 | UICC 파일의 항목 수입니다. 투명 및 TLV 파일의 경우 1로 설정됩니다. |
28 | 4 | 크기 | UINT32 | 각 항목의 크기(바이트)입니다. 투명 또는 TLV 파일의 경우 전체 EF의 크기입니다. 레코드 기반 파일의 경우 총 레코드 수를 나타냅니다. |
32 | 16 | FileLockStatus | MBIM_PIN_TYPE_EX[4] | 해당 파일의 각 작업에 대한 액세스 조건(해당 순서대로 READ, UPDATE, ACTIVATE 및 DEACTIVATE)을 설명하는 MBIM_PIN_TYPE_EX 형식의 배열입니다. |
MBIM_UICC_FILE_ACCESSIBILITY
MBIM_UICC_FILE_ACCESSIBILITY 열거형은 이전 MBIM_UICC_FILE_STATUS 구조체에서 사용됩니다.
Type | 값 | 설명 |
---|---|---|
MBIMUiccFileAccessibilityUnknown | 0 | 파일 공유 가능성을 알 수 없습니다. |
MBIMUiccFileAccessibilityNotShareable | 1 | 공유할 수 없는 파일입니다. |
MBIMUiccFileAccessibilityShareable | 2 | 공유 가능한 파일입니다. |
MBIM_UICC_FILE_TYPE
MBIM_UICC_FILE_TYPE 열거형은 이전 MBIM_UICC_FILE_STATUS 구조체에서 사용됩니다.
Type | 값 | 설명 |
---|---|---|
MBIMUiccFileTypeUnknown | 0 | 파일 형식을 알 수 없습니다. |
MBIMUiccFileTypeWorkingEf | 1 | 작업 EF. |
MBIMUiccFileTypeInternalEf | 2 | 내부 EF. |
MBIMUiccFileTypeDfOrAdf | 3 | 전용 파일, 다른 노드의 부모인 디렉터리입니다. DF 또는 ADF일 수 있습니다. |
MBIM_UICC_FILE_STRUCTURE
MBIM_UICC_FILE_STRUCTURE 열거형은 이전 MBIM_UICC_FILE_STATUS 구조체에서 사용됩니다.
Type | 값 | 설명 |
---|---|---|
MBIMUiccFileStructureUnknown | 0 | 알 수 없는 파일 구조입니다. |
MBIMUiccFileStructureTransparent | 1 | 가변 길이의 단일 레코드입니다. |
MBIMUiccFileStructureCyclic | 2 | 각각 동일한 길이의 순환 레코드 집합입니다. |
MBIMUiccFileStructureLinear | 3 | 각각 동일한 길이의 선형 레코드 집합입니다. |
MBIMUiccFileStructureBerTLV | 4 | 태그로 액세스할 수 있는 데이터 값 집합입니다. |
MBIM_PIN_TYPE_EX
MBIM_PIN_TYPE_EX 열거형은 이전 MBIM_UICC_FILE_STATUS 구조체에서 사용됩니다.
Type | 값 | 설명 |
---|---|---|
MBIMPinTypeNone | 0 | 입력할 PIN이 없습니다. |
MBIMPinTypeCustom | 1 | PIN 형식은 사용자 지정 형식이며 이 열거형에 나열된 다른 PIN 형식은 없습니다. |
MBIMPinTypePin1 | 2 | PIN1 키입니다. |
MBIMPinTypePin2 | 3 | PIN2 키입니다. |
MBIMPinTypeDeviceSimPin | 4 | 디바이스에서 SIM 키로. |
MBIMPinTypeDeviceFirstSimPin | 5 | 첫 번째 SIM 키에 대한 디바이스입니다. |
MBIMPinTypeNetworkPin | 6 | 네트워크 개인 설정 키입니다. |
MBIMPinTypeNetworkSubsetPin | 7 | 네트워크 하위 집합 개인 설정 키입니다. |
MBIMPinTypeServiceProviderPin | 8 | SP(서비스 공급자) 개인 설정 키입니다. |
MBIMPinTypeCorporatePin | 9 | 회사 개인 설정 키입니다. |
MBIMPinTypeSubsidyLock | 10 | 보조금 잠금 해제 키입니다. |
MBIMPinTypePuk1 | 11 | 개인 식별 번호 1 잠금 해제 키(PUK1)입니다. |
MBIMPinTypePuk2 | 12 | 개인 식별 번호 2 PUK2(잠금 해제 키)입니다. |
MBIMPinTypeDeviceFirstSimPuk | 13 | 첫 번째 SIM PIN 잠금 해제 키에 대한 디바이스입니다. |
MBIMPinTypeNetworkPuk | 14 | 네트워크 개인 설정 잠금 해제 키입니다. |
MBIMPinTypeNetworkSubsetPuk | 15 | 네트워크 하위 집합 개인 설정 잠금 해제 키입니다. |
MBIMPinTypeServiceProviderPuk | 16 | SP(서비스 공급자) 개인 설정 잠금 해제 키입니다. |
MBIMPinTypeCorporatePuk | 17 | 회사 개인 설정 잠금 해제 키입니다. |
MBIMPinTypeNev | 18 | NEV 키입니다. |
MBIMPinTypeAdm | 19 | 관리 키입니다. |
원치 않는 이벤트
해당 없음.
상태 코드
다음 상태 코드가 적용됩니다.
상태 코드 | 설명 |
---|---|
MBIM_STATUS_BUSY | 모든 명령에 대해 정의된 기본 MBIM 상태입니다. |
MBIM_STATUS_FAILURE | 모든 명령에 대해 정의된 기본 MBIM 상태입니다. |
MBIM_STATUS_SIM_NOT_INSERTED | UICC가 없으므로 UICC 작업을 수행할 수 없습니다. |
MBIM_STATUS_BAD_SIM | UICC가 오류 상태이므로 UICC 작업을 수행할 수 없습니다. |
MBIM_STATUS_SHAREABILITY_CONDITION_ERROR | 파일을 공유할 수 없고 현재 다른 애플리케이션에서 액세스 중이므로 선택할 수 없습니다. SIM에서 반환된 상태 단어는 6985입니다. |
MBIM_CID_MS_UICC_ACCESS_BINARY
이 CID는 구조체 형식 MBIMUiccFileStructureTransparent 또는 MBIMUiccFileStructureBerTLV를 사용하여 UICC 이진 파일에 액세스하기 위한 특정 명령을 보냅니다.
매개 변수
연산 | 설정 | 쿼리 | 알림 |
---|---|---|---|
명령 | 해당 없음 | MBIM_UICC_ACCESS_BINARY | 해당 없음 |
Response | 해당 없음 | MBIM_UICC_RESPONSE | 해당 없음 |
쿼리
이진 파일을 읽습니다. MBIM_COMMAND_MSG InformationBuffer에는 MBIM_UICC_ACCESS_BINARY 구조체가 포함되어 있습니다. MBIM_UICC_RESPONSE 구조체는 MBIM_COMMAND_DONE InformationBuffer에 반환됩니다.
MBIM_UICC_ACCESS_BINARY(버전 1)
Offset | 크기 | 필드 | 형식 | 설명 |
---|---|---|---|---|
0 | 4 | 버전 | UINT32 | 다음 구조체의 버전 번호입니다. 이 구조체의 버전 1에서는 이 필드를 1로 설정해야 합니다. |
4 | 4 | AppIdOffset | OFFSET | 이 구조체의 시작부터 애플리케이션 ID를 포함하는 버퍼까지의 오프셋(바이트)입니다. |
8 | 4 | AppIdSize | SIZE(0..16) | ETSI TS 102 221 기술 사양의 섹션 8.3에 정의된 애플리케이션 ID의 크기(바이트)입니다. 2G 카드의 경우 이 필드는 0으로 설정해야 합니다. |
12 | 4 | FilePathOffset | OFFSET | 이 구조체의 시작 부분에서 파일 경로를 포함하는 버퍼로 계산된 오프셋(바이트)입니다. 파일 경로는 16비트 파일 ID의 배열입니다. 첫 번째 ID는 0x7FFF 또는 0x3F00. 첫 번째 ID가 0x7FFF 경우 경로는 AppId에서 지정한 애플리케이션의 ADF를 기준으로 합니다. 그렇지 않으면 MF에서 시작하는 절대 경로입니다. |
16 | 4 | FilePathSize | 크기 | 파일 경로의 크기(바이트)입니다. |
20 | 4 | FileOffset | UINT32 | 파일에서 읽을 때 사용할 오프셋입니다. 이 필드는 256보다 클 수 있으며 ETSI TS 102 221 기술 사양에 정의된 대로 오프셋 높음 및 오프셋 낮음 모두 결합합니다. |
24 | 4 | NumberOfBytes | UINT32 | 읽을 바이트 수입니다. 예를 들어 클라이언트 드라이버는 이 함수를 사용하여 256바이트보다 큰 투명(이진) 파일을 읽을 수 있지만 단일 UICC 작업에서 읽거나 쓸 수 있는 최대 크기는 ETSI TS 102 221 기술 사양당 256바이트입니다. 이를 여러 APU로 분할하고 결과를 단일 응답으로 다시 보내는 것은 함수의 책임입니다. |
28 | 4 | LocalPinOffset | OFFSET | 이 구조의 시작 부분에서 암호를 포함하는 버퍼로 계산된 오프셋(바이트)입니다. 이는 PIN2(로컬 PIN)이며 작업에 로컬 PIN 유효성 검사가 필요한 경우에 사용됩니다. |
32 | 4 | LocalPinSize | SIZE(0..16) | 암호 크기(바이트)입니다. |
36 | 4 | BinaryDataOffset | OFFSET | 이 구조의 시작 부분에서 명령별 데이터를 포함하는 버퍼로 계산된 오프셋(바이트)입니다. 이진 데이터는 SET 작업에만 사용됩니다. |
40 | 4 | BinaryDataSize | SIZE(0..32768) | 데이터의 크기(바이트)입니다. |
44 | DataBuffer | DATABUFFER | AppId, FilePath, LocalPin 및 BinaryData를 포함하는 데이터 버퍼입니다. |
설정
해당 없음.
Response
다음 MBIM_UICC_RESPONSE 구조체는 InformationBuffer에 사용됩니다.
MBIM_UICC_RESPONSE(버전 1)
Offset | 크기 | 필드 | 형식 | 설명 |
---|---|---|---|---|
0 | 4 | 버전 | UINT32 | 다음 구조체의 버전 번호입니다. 이 구조체의 버전 1에서는 이 필드가 1이어야 합니다. |
4 | 4 | StatusWord1 | UINT32(0..256) | UICC 명령과 관련된 반환 매개 변수입니다. |
8 | 4 | StatusWord2 | UINT32(0..256) | UICC 명령과 관련된 반환 매개 변수입니다. |
12 | 4 | ResponseDataOffset | OFFSET | 이 구조의 시작 부분에서 응답 데이터를 포함하는 버퍼로 계산된 오프셋(바이트)입니다. 응답 데이터는 QUERY 작업에만 사용됩니다. |
16 | 4 | ResponseDataSize | SIZE(0..32768) | 데이터의 크기(바이트)입니다. |
20 | DataBuffer | DATABUFFER | ResponseData를 포함하는 데이터 버퍼입니다. |
원치 않는 이벤트
해당 없음.
상태 코드
다음 상태 코드가 적용됩니다.
상태 코드 | 설명 |
---|---|
MBIM_STATUS_BUSY | 모든 명령에 대해 정의된 기본 MBIM 상태입니다. |
MBIM_STATUS_FAILURE | 모든 명령에 대해 정의된 기본 MBIM 상태입니다. |
MBIM_STATUS_SIM_NOT_INSERTED | UICC가 없으므로 UICC 작업을 수행할 수 없습니다. |
MBIM_STATUS_BAD_SIM | UICC가 오류 상태이므로 UICC 작업을 수행할 수 없습니다. |
MBIM_STATUS_SHAREABILITY_CONDITION_ERROR | 파일을 공유할 수 없고 현재 다른 애플리케이션에서 액세스 중이므로 선택할 수 없습니다. SIM에서 반환된 상태 단어는 6985입니다. |
MBIM_STATUS_PIN_FAILURE | PIN 오류로 인해 작업이 실패했습니다. |
MBIM_CID_MS_UICC_ACCESS_RECORD
이 CID는 MBIMUiccFileStructureCyclic 또는 MBIMUIccFileStructureLinear의 구조 형식을 사용하여 UICC 선형 고정 또는 순환 파일에 액세스하는 특정 명령을 보냅니다.
매개 변수
연산 | 설정 | 쿼리 | 알림 |
---|---|---|---|
명령 | 해당 없음 | MBIM_UICC_ACCESS_RECORD | 해당 없음 |
Response | 해당 없음 | MBIM_UICC_RESPONSE | 해당 없음 |
쿼리
레코드의 내용을 읽습니다. MBIM_COMMAND_MSG InformationBuffer에는 다음과 같은 MBIM_UICC_ACCESS_RECORD 구조체가 포함되어 있습니다. MBIM_UICC_RESPONSE MBIM_COMMAND_DONE InformationBuffer에 반환됩니다.
MBIM_UICC_ACCESS_RECORD(버전 1)
Offset | 크기 | 필드 | 형식 | 설명 |
---|---|---|---|---|
0 | 4 | 버전 | UINT32 | 다음 구조체의 버전 번호입니다. 이 구조체의 버전 1에서는 이 필드를 1로 설정해야 합니다. |
4 | 4 | AppIdOffset | OFFSET | 이 구조체의 시작부터 애플리케이션 ID를 포함하는 버퍼까지의 오프셋(바이트)입니다. |
8 | 4 | AppIdSize | SIZE(0..16) | ETSI TS 102 221 기술 사양의 섹션 8.3에 정의된 애플리케이션 ID의 크기(바이트)입니다. 2G 카드의 경우 이 필드는 0으로 설정해야 합니다. |
12 | 4 | FilePathOffset | OFFSET | 이 구조체의 시작 부분에서 파일 경로를 포함하는 버퍼로 계산된 오프셋(바이트)입니다. 파일 경로는 16비트 파일 ID의 배열입니다. 첫 번째 ID는 0x7FFF 또는 0x3F00. 첫 번째 ID가 0x7FFF 경우 경로는 AppId에서 지정한 애플리케이션의 ADF를 기준으로 합니다. 그렇지 않으면 MF에서 시작하는 절대 경로입니다. |
16 | 4 | FilePathSize | 크기 | 파일 경로의 크기(바이트)입니다. |
20 | 4 | RecordNumber | UINT32(0..256) | 레코드 번호입니다. 항상 절대 레코드 인덱스를 나타냅니다. 모뎀이 파일에서 여러 액세스(NEXT, PREVIOUS)를 수행할 수 있으므로 상대 레코드 액세스는 지원되지 않습니다. |
24 | 4 | LocalPinOffset | OFFSET | 이 구조의 시작 부분에서 암호를 포함하는 버퍼로 계산된 오프셋(바이트)입니다. 잠금 암호는 null로 끝나는 UTF-8 10진수 문자열입니다. |
28 | 4 | LocalPinSize | SIZE(0..16) | 암호 크기(바이트)입니다. |
32 | 4 | RecordDataOffset | OFFSET | 이 구조의 시작 부분에서 명령별 데이터를 포함하는 버퍼로 계산된 오프셋(바이트)입니다. 레코드 데이터는 SET 작업에만 사용됩니다. |
36 | 4 | RecordDataSize | SIZE(0..256) | 데이터의 크기(바이트)입니다. |
40 | DataBuffer | DATABUFFER | AppId, FilePath, LocalPin 및 RecordData를 포함하는 데이터 버퍼입니다. |
설정
해당 없음.
Response
MBIM_UICC_RESPONSE 구조체는 InformationBuffer에 사용됩니다.
원치 않는 이벤트
해당 없음.
상태 코드
다음 상태 코드가 적용됩니다.
상태 코드 | 설명 |
---|---|
MBIM_STATUS_BUSY | 모든 명령에 대해 정의된 기본 MBIM 상태입니다. |
MBIM_STATUS_FAILURE | 모든 명령에 대해 정의된 기본 MBIM 상태입니다. |
MBIM_STATUS_SIM_NOT_INSERTED | UICC가 없으므로 UICC 작업을 수행할 수 없습니다. |
MBIM_STATUS_BAD_SIM | UICC가 오류 상태이므로 UICC 작업을 수행할 수 없습니다. |
MBIM_STATUS_SHAREABILITY_CONDITION_ERROR | 파일을 공유할 수 없고 현재 다른 애플리케이션에서 액세스 중이므로 선택할 수 없습니다. SIM에서 반환된 상태 단어는 6985입니다. |
MBIM_STATUS_PIN_FAILURE | PIN 오류로 인해 작업이 실패했습니다. |
MBIM_CID_MS_PIN_EX
이 CID는 ETSI TS 102 221 기술 사양의 섹션 9에 정의된 대로 모든 PIN 보안 작업을 수행하는 데 사용됩니다. CID는 MBIM_CID_MS_PIN 비슷하지만 다중 앱 UICC 카드를 지원하도록 확장합니다. 단일 확인 가능 IC만 지원됩니다. 둘 이상의 애플리케이션 PIN을 지원하는 다중 확인 지원 IC는 지원되지 않습니다. PIN1(애플리케이션 PIN)은 UICC의 모든 ADF/DF 및 파일에 할당됩니다. 그러나 각 애플리케이션은 수준 2 사용자 확인 요구 사항으로 PIN2(로컬 PIN)를 지정할 수 있으므로 모든 액세스 명령에 대한 추가 유효성 검사가 필요합니다. 이 시나리오는 MBIM_CID_MS_PIN_EX 지원합니다.
MBIM_CID_MS_PIN 마찬가지로 MBIM_CID_MS_PIN_EX 디바이스는 한 번에 하나의 PIN만 보고합니다. 여러 PIN을 사용하도록 설정하고 여러 PIN도 보고할 수 있는 경우 함수는 PIN1을 먼저 보고해야 합니다. 예를 들어 보조금 잠금 보고를 사용하도록 설정하고 SIM의 PIN1을 사용하도록 설정한 경우 PIN1이 성공적으로 확인된 후에만 보조 잠금 PIN을 후속 쿼리 요청에 보고해야 합니다. 빈 PIN은 MBIMPinOperationEnter와 함께 허용됩니다. PinSize를 0으로 설정하여 빈 PIN을 지정합니다. 이 경우 SET 명령은 QUERY와 유사하며 참조된 PIN의 상태를 반환합니다. 이는 ETSI TS 102 221 기술 사양의 섹션 11.1.9에 지정된 대로 VERIFY 명령의 동작에 완전히 맞춥니다.
매개 변수
연산 | 설정 | 쿼리 | 알림 |
---|---|---|---|
명령 | MBIM_SET_PIN_EX | MBIM_PIN_APP | 해당 없음 |
Response | MBIM_PIN_INFO_EX | MBIM_PIN_INFO_EX | 해당 없음 |
쿼리
다음 MBIM_PIN_APP 구조체는 InformationBuffer에 사용됩니다.
MBIM_PIN_APP(버전 1)
Offset | 크기 | 필드 | 형식 | 설명 |
---|---|---|---|---|
0 | 4 | 버전 | UINT32 | 다음 구조체의 버전 번호입니다. 이 구조체의 버전 1에서는 이 필드를 1로 설정해야 합니다. |
4 | 4 | AppIdOffset | OFFSET | 이 구조체의 시작부터 애플리케이션 ID를 포함하는 버퍼까지의 오프셋(바이트)입니다. |
8 | 4 | AppIdSize | SIZE(0..16) | ETSI TS 102 221 기술 사양의 섹션 8.3에 정의된 애플리케이션 ID의 크기(바이트)입니다. 2G 카드의 경우 이 필드는 0으로 설정해야 합니다. |
12 | DataBuffer | DATABUFFER | ETSI TS 102 221 기술 사양에 정의된 AppId입니다. |
설정
다음 MBIM_SET_PIN_EX 구조체는 InformationBuffer에 사용됩니다.
MBIM_SET_PIN_EX
Offset | 크기 | 필드 | 형식 | 설명 |
---|---|---|---|---|
0 | 4 | PinType | MBIM_PIN_TYPE_EX | PIN 유형입니다. 이 항목의 MBIM_PIN_TYPE_EX 표를 참조하세요. |
4 | 4 | PinOperation | MBIM_PIN_OPERATION | PIN 작업입니다. MBIM 1.0을 참조하세요. |
8 | 4 | PinOffset | OFFSET | 이 구조의 시작 부분에서 작업을 수행할 PIN 값을 나타내는 문자열 PIN 또는 PIN 설정을 사용하거나 사용하지 않도록 설정하는 데 필요한 PIN 값으로 계산된 오프셋(바이트)입니다. 이 필드는 PinOperation의 모든 값에 적용됩니다. |
12 | 4 | PinSize | SIZE(0..32) | PIN에 사용되는 크기(바이트)입니다. |
16 | 4 | NewPinOffset | OFFSET | PinTypeMBIMPinTypePuk1 또는 PinTypeMBIMPinTypePuk2의 경우 PinOperation이 MBIMPinOperationChange 또는 MBIMPinOperationEnter일 때 설정할 새 PIN 값을 나타내는 NewPin 문자열로 이 구조의 시작 부분에서 계산된 오프셋(바이트)입니다. |
20 | 4 | NewPinSize | SIZE(0..32) | NewPin에 사용되는 크기(바이트)입니다. |
24 | 4 | AppIdOffset | OFFSET | 이 구조의 시작 부분에서 애플리케이션 ID를 포함하는 버퍼로 계산된 오프셋(바이트)입니다. |
28 | 4 | AppIdSize | SIZE(0..16) | ETSI TS 102 221 기술 사양의 섹션 8.3에 정의된 애플리케이션 ID의 크기(바이트)입니다. 2G 카드의 경우 이 필드는 0으로 설정해야 합니다. |
32 | DataBuffer | DATABUFFER | Pin, NewPin 및 AppId를 포함하는 데이터 버퍼입니다. |
Response
다음 MBIM_PIN_INFO_EX 구조체는 InformationBuffer에 사용됩니다.
Offset | 크기 | 필드 | 형식 | 설명 |
---|---|---|---|---|
0 | 4 | PinType | MBIM_PIN_TYPE_EX | PIN 유형입니다. 이 항목의 MBIM_PIN_TYPE_EX 표를 참조하세요. |
4 | 4 | PinState | MBIM_PIN_STATE | PIN 상태입니다. MBIM 1.0을 참조하세요. |
8 | 4 | RemainingAttempts | UINT32 | ENTER, Enable 또는 disable와 같은 PIN 관련 작업에 대한 나머지 시도 횟수입니다. 이 정보를 지원하지 않는 디바이스는 이 멤버를 0xFFFFFFFF 설정해야 합니다. |
원치 않는 이벤트
해당 없음.
상태 코드
다음 상태 코드가 적용됩니다.
상태 코드 | 설명 |
---|---|
MBIM_STATUS_BUSY | 모든 명령에 대해 정의된 기본 MBIM 상태입니다. |
MBIM_STATUS_FAILURE | 모든 명령에 대해 정의된 기본 MBIM 상태입니다. |
MBIM_STATUS_SIM_NOT_INSERTED | UICC가 없으므로 UICC 작업을 수행할 수 없습니다. |
MBIM_STATUS_BAD_SIM | UICC가 오류 상태이므로 UICC 작업을 수행할 수 없습니다. |
MBIM_STATUS_PIN_DISABLED | PIN을 사용하지 않도록 설정하여 작업이 실패했습니다. |
MBIM_STATUS_PIN_REQUIRED | 계속하려면 PIN을 입력해야 하므로 작업이 실패했습니다. |
MBIM_STATUS_NO_DEVICE_SUPPORT | 해당 PIN 형식의 SET가 디바이스에서 지원되지 않으므로 작업이 실패했습니다. |