MB UICC 애플리케이션 및 파일 시스템 액세스
개요
이 항목에서는 UICC 스마트 카드 애플리케이션 및 파일 시스템에 액세스할 수 있도록 MBIM(모바일 광대역 인터페이스 모델) 인터페이스에 대한 확장을 지정합니다. MBIM에 대한 이 확장은 UICC의 ETSI TS 102 221 기술 사양 규격 애플리케이션 및 파일 시스템에 대한 논리적 액세스를 노출하며 Windows 10 버전 1903 이상에서 지원됩니다.
UICC 액세스 및 보안
UICC는 파일 시스템을 제공하고 동시에 실행할 수 있는 애플리케이션 집합을 지원합니다. 여기에는 UMTS용 USIM, CDMA용 CSIM 및 IMS용 ISIM이 포함됩니다. SIM은 이러한 애플리케이션 중 하나로 모델링할 수 있는 UICC의 레거시 부분입니다(GSM용).
ETSI TS 102 221 기술 사양의 섹션 8.1에서 다음 다이어그램은 애플리케이션 구조에 카드 예제를 보여 줍니다.
UICC 파일 시스템은 디렉터리 트리의 포리스트로 간주될 수 있습니다. 레거시 SIM 트리는 MF(마스터 파일)에 루팅되며 다양한 유형의 정보를 포함하는 EF(요소 파일)를 포함하는 최대 2개 수준의 하위 디렉터리(전용 파일 또는 DF)를 포함합니다. SIM은 MF에서 DF를 정의하며, 그 중 하나인 DFTelecom에는 공통 전화 번호부와 같은 여러 액세스 유형에 공통된 정보가 포함되어 있습니다. 추가 애플리케이션은 각각 자체 ADF(애플리케이션 디렉터리 파일)에 루팅된 별도의 트리로 효과적으로 구현됩니다. 각 ADF는 최대 128비트 길이의 애플리케이션 식별자에 의해 식별됩니다. 카드 루트 아래의 파일(다이어그램의 MF 아래에 있는 EFDir)에는 애플리케이션 이름과 해당 식별자가 포함됩니다. 트리(MF 또는 ADF) 내에서 DF 및 EF는 파일 ID의 경로로 식별될 수 있습니다. 여기서 파일 ID는 16비트 정수입니다.
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 Low-Level 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 필드에서 선택한 애플리케이션을 반환해야 합니다.
매개 변수
작업(Operation) | 설정 | 쿼리 | 알림 |
---|---|---|---|
명령 | 적용할 수 없음 | Empty | 적용할 수 없음 |
응답 | 적용할 수 없음 | MBIM_UICC_APP_LIST | 적용할 수 없음 |
쿼리
MBIM_COMMAND_MSG InformationBuffer가 비어 있습니다.
설정
해당 사항 없음
응답
MBIM_COMMAND_DONE InformationBuffer에는 다음과 같은 MBIM_UICC_APP_LIST 구조가 포함되어 있습니다.
MBIM_UICC_APP_LIST(버전 1)
Offset | 크기 | 필드 | 형식 | Description |
---|---|---|---|---|
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 | 크기 | 필드 | 형식 | Description |
---|---|---|---|---|
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 | 크기(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 | 크기(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에 설명된 대로 PIN2(0x81)여야 합니다. |
28 | 4 | KeyRefSize | SIZE(0..8) | PinKeyRef의 크기입니다. |
32 | DataBuffer | DATABUFFER | 단일 확인 카드 AppId, AppName 및 PinKeyRef.를 포함하는 데이터 버퍼 또는 다른 애플리케이션에 대해 다른 애플리케이션 키를 지원하지 않는 MBB 드라이버 및/또는 모뎀인 이 필드는 0x01 합니다. |
MBIM_UICC_APP_TYPE
형식 | 값 | Description |
---|---|---|
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
원치 않는 이벤트
해당 사항 없음
상태 코드
다음 상태 코드가 적용됩니다.
상태 코드 | Description |
---|---|
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 파일에 대한 정보를 검색합니다.
매개 변수
작업(Operation) | 설정 | 쿼리 | 알림 |
---|---|---|---|
명령 | 적용할 수 없음 | MBIM_UICC_FILE_PATH | 적용할 수 없음 |
응답 | 적용할 수 없음 | MBIM_UICC_FILE_STATUS | 적용할 수 없음 |
쿼리
MBIM_COMMAND_MSG InformationBuffer에는 대상 EF가 MBIM_UICC_FILE_PATH 구조체로 포함됩니다.
MBIM_UICC_FILE_PATH(버전 1)
Offset | 크기 | 필드 | 형식 | Description |
---|---|---|---|---|
0 | 4 | 버전 | Uint32 | 다음 구조체의 버전 번호입니다. 이 구조체의 버전 1 에 대해 이 필드는 1이어야 합니다. |
4 | 4 | AppIdOffset | OFFSET | 이 구조체의 시작부터 애플리케이션 ID를 포함하는 버퍼까지 계산된 오프셋(바이트)입니다. |
8 | 4 | AppIdSize | 크기(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를 포함하는 데이터 버퍼입니다. |
설정
해당 사항 없음
응답
다음 MBIM_UICC_FILE_STATUS 구조체는 InformationBuffer에 사용됩니다.
MBIM_UICC_FILE_STATUS(버전 1)
Offset | 크기 | 필드 | 형식 | Description |
---|---|---|---|---|
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 구조체에서 사용됩니다.
형식 | 값 | Description |
---|---|---|
MBIMUiccFileAccessibilityUnknown | 0 | 파일 공유 가능성을 알 수 없습니다. |
MBIMUiccFileAccessibilityNotShareable | 1 | 공유할 수 없는 파일입니다. |
MBIMUiccFileAccessibilityShareable | 2 | 공유 가능한 파일입니다. |
MBIM_UICC_FILE_TYPE
MBIM_UICC_FILE_TYPE 열거형은 이전 MBIM_UICC_FILE_STATUS 구조체에서 사용됩니다.
형식 | 값 | Description |
---|---|---|
MBIMUiccFileTypeUnknown | 0 | 파일 형식을 알 수 없습니다. |
MBIMUiccFileTypeWorkingEf | 1 | 작업 EF. |
MBIMUiccFileTypeInternalEf | 2 | 내부 EF. |
MBIMUiccFileTypeDfOrAdf | 3 | 전용 파일, 다른 노드의 부모인 디렉터리입니다. DF 또는 ADF일 수 있습니다. |
MBIM_UICC_FILE_STRUCTURE
MBIM_UICC_FILE_STRUCTURE 열거형은 이전 MBIM_UICC_FILE_STATUS 구조체에서 사용됩니다.
형식 | 값 | Description |
---|---|---|
MBIMUiccFileStructureUnknown | 0 | 알 수 없는 파일 구조입니다. |
MBIMUiccFileStructureTransparent | 1 | 가변 길이의 단일 레코드입니다. |
MBIMUiccFileStructureCyclic | 2 | 각각 동일한 길이의 주기적 레코드 집합입니다. |
MBIMUiccFileStructureLinear | 3 | 각각 동일한 길이의 선형 레코드 집합입니다. |
MBIMUiccFileStructureBerTLV | 4 | 태그로 액세스할 수 있는 데이터 값 집합입니다. |
MBIM_PIN_TYPE_EX
MBIM_PIN_TYPE_EX 열거형은 이전 MBIM_UICC_FILE_STATUS 구조체에서 사용됩니다.
형식 | 값 | Description |
---|---|---|
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 | 관리 키입니다. |
원치 않는 이벤트
해당 사항 없음
상태 코드
다음 상태 코드가 적용됩니다.
상태 코드 | Description |
---|---|
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 이진 파일에 액세스하기 위한 특정 명령을 보냅니다.
매개 변수
작업(Operation) | 설정 | 쿼리 | 알림 |
---|---|---|---|
명령 | 적용할 수 없음 | MBIM_UICC_ACCESS_BINARY | 적용할 수 없음 |
응답 | 적용할 수 없음 | MBIM_UICC_RESPONSE | 적용할 수 없음 |
쿼리
이진 파일을 읽습니다. MBIM_COMMAND_MSG InformationBuffer에는 MBIM_UICC_ACCESS_BINARY 구조체가 포함되어 있습니다. MBIM_UICC_RESPONSE 구조체는 MBIM_COMMAND_DONE InformationBuffer에 반환됩니다.
MBIM_UICC_ACCESS_BINARY(버전 1)
Offset | 크기 | 필드 | 형식 | Description |
---|---|---|---|---|
0 | 4 | 버전 | Uint32 | 다음 구조체의 버전 번호입니다. 이 구조체의 버전 1 에 대해 이 필드를 1로 설정해야 합니다. |
4 | 4 | AppIdOffset | OFFSET | 이 구조체의 시작부터 애플리케이션 ID를 포함하는 버퍼까지의 오프셋(바이트)입니다. |
8 | 4 | AppIdSize | 크기(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 | 파일 경로의 크기(바이트)입니다. |
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 | 크기(0..16) | 암호 크기(바이트)입니다. |
36 | 4 | BinaryDataOffset | OFFSET | 이 구조체의 시작 부분에서 명령별 데이터가 포함된 버퍼로 계산된 오프셋(바이트)입니다. 이진 데이터는 SET 작업에만 사용됩니다. |
40 | 4 | BinaryDataSize | 크기(0..32768) | 데이터의 크기(바이트)입니다. |
44 | DataBuffer | DATABUFFER | AppId, FilePath, LocalPin 및 BinaryData를 포함하는 데이터 버퍼입니다. |
설정
해당 사항 없음
응답
다음 MBIM_UICC_RESPONSE 구조체는 InformationBuffer에 사용됩니다.
MBIM_UICC_RESPONSE(버전 1)
Offset | 크기 | 필드 | 형식 | Description |
---|---|---|---|---|
0 | 4 | 버전 | Uint32 | structurethat의 버전 번호는 다음과 같습니다. 이 구조체의 버전 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를 포함하는 데이터 버퍼입니다. |
원치 않는 이벤트
해당 사항 없음
상태 코드
다음 상태 코드가 적용됩니다.
상태 코드 | Description |
---|---|
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 선형 고정 또는 순환 파일에 액세스하기 위해 특정 명령을 보냅니다.
매개 변수
작업(Operation) | 설정 | 쿼리 | 알림 |
---|---|---|---|
명령 | 적용할 수 없음 | MBIM_UICC_ACCESS_RECORD | 적용할 수 없음 |
응답 | 적용할 수 없음 | MBIM_UICC_RESPONSE | 적용할 수 없음 |
쿼리
레코드의 내용을 읽습니다. MBIM_COMMAND_MSG InformationBuffer에는 다음과 같은 MBIM_UICC_ACCESS_RECORD 구조가 포함됩니다. MBIM_UICC_RESPONSE MBIM_COMMAND_DONE InformationBuffer에 반환됩니다.
MBIM_UICC_ACCESS_RECORD(버전 1)
Offset | 크기 | 필드 | 형식 | Description |
---|---|---|---|---|
0 | 4 | 버전 | Uint32 | 다음 구조체의 버전 번호입니다. 이 구조체의 버전 1에 대해 이 필드를 1 로 설정해야 합니다. |
4 | 4 | AppIdOffset | OFFSET | 이 구조체의 시작부터 애플리케이션 ID를 포함하는 버퍼까지의 오프셋(바이트)입니다. |
8 | 4 | AppIdSize | 크기(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 | 파일 경로의 크기(바이트)입니다. |
20 | 4 | RecordNumber | UINT32(0..256) | 레코드 번호입니다. 항상 절대 레코드 인덱스를 나타냅니다. 모뎀이 파일에서 여러 액세스(NEXT, PREVIOUS)를 수행할 수 있으므로 상대 레코드 액세스는 지원되지 않습니다. |
24 | 4 | LocalPinOffset | OFFSET | 이 구조체의 시작 부분에서 암호를 포함하는 버퍼로 계산된 오프셋(바이트)입니다. 잠금 암호는 null로 끝나는 UTF-8 10진수 문자열입니다. |
28 | 4 | LocalPinSize | 크기(0..16) | 암호 크기(바이트)입니다. |
32 | 4 | RecordDataOffset | OFFSET | 이 구조체의 시작 부분에서 명령별 데이터가 포함된 버퍼로 계산된 오프셋(바이트)입니다. 레코드 데이터는 SET 작업에만 사용됩니다. |
36 | 4 | RecordDataSize | 크기(0..256) | 데이터의 크기(바이트)입니다. |
40 | DataBuffer | DATABUFFER | AppId, FilePath, LocalPin 및 RecordData를 포함하는 데이터 버퍼입니다. |
설정
해당 사항 없음
응답
MBIM_UICC_RESPONSE 구조체는 InformationBuffer에 사용됩니다.
원치 않는 이벤트
해당 사항 없음
상태 코드
다음 상태 코드를 적용할 수 있습니다.
상태 코드 | Description |
---|---|
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는 지원되지 않습니다. 하나의 PIN(애플리케이션 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와 함께 허용됩니다. 빈 PIN은 PinSize를 0으로 설정하여 지정됩니다. 이 경우 SET 명령은 QUERY와 유사하며 참조된 PIN의 상태를 반환합니다. 이는 ETSI TS 102 221 기술 사양의 섹션 11.1.9에 지정된 대로 VERIFY 명령의 동작에 완전히 맞춰집니다.
매개 변수
작업(Operation) | 설정 | 쿼리 | 알림 |
---|---|---|---|
명령 | MBIM_SET_PIN_EX | MBIM_PIN_APP | 적용할 수 없음 |
응답 | MBIM_PIN_INFO_EX | MBIM_PIN_INFO_EX | 적용할 수 없음 |
쿼리
다음 MBIM_PIN_APP 구조체는 InformationBuffer에 사용됩니다.
MBIM_PIN_APP(버전 1)
Offset | 크기 | 필드 | 형식 | Description |
---|---|---|---|---|
0 | 4 | 버전 | Uint32 | 다음 구조체의 버전 번호입니다. 이 구조체의 버전 1 에 대해 이 필드를 1로 설정해야 합니다. |
4 | 4 | AppIdOffset | OFFSET | 이 구조체의 시작부터 애플리케이션 ID를 포함하는 버퍼까지의 오프셋(바이트)입니다. |
8 | 4 | AppIdSize | 크기(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 | 크기 | 필드 | 형식 | Description |
---|---|---|---|---|
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 | 크기(0..32) | PIN에 사용되는 크기(바이트)입니다. |
16 | 4 | NewPinOffset | OFFSET | PinTypeMBIMPinTypePuk1 또는 PinTypeMBIMPinTypePuk2의 경우 PinOperation이 MBIMPinOperationChange 또는 MBIMPinOperationEnter일 때 설정할 새 PIN 값을 나타내는 NewPin 문자열로 이 구조의 시작 부분에서 계산된 오프셋(바이트)입니다. |
20 | 4 | NewPinSize | 크기(0..32) | NewPin에 사용되는 크기(바이트)입니다. |
24 | 4 | AppIdOffset | OFFSET | 이 구조체의 시작 부분에서 애플리케이션 ID를 포함하는 버퍼로 계산된 오프셋(바이트)입니다. |
28 | 4 | AppIdSize | 크기(0..16) | ETSI TS 102 221 기술 사양의 섹션 8.3에 정의된 애플리케이션 ID의 크기(바이트)입니다. 2G 카드의 경우 이 필드는 0으로 설정해야 합니다. |
32 | DataBuffer | DATABUFFER | Pin, NewPin 및 AppId를 포함하는 데이터 버퍼입니다. |
응답
다음 MBIM_PIN_INFO_EX 구조체는 InformationBuffer에 사용됩니다.
Offset | 크기 | 필드 | 형식 | Description |
---|---|---|---|---|
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 설정해야 합니다. |
원치 않는 이벤트
해당 사항 없음
상태 코드
다음 상태 코드가 적용됩니다.
상태 코드 | Description |
---|---|
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가 디바이스에서 지원되지 않으므로 작업이 실패했습니다. |