MB Arabirim Modeli Eki

Microsoft işletim sistemi tanımlayıcısı aşağıdaki segmentlere ayrılmıştır:

  • Bir Microsoft işletim sistemi dize tanımlayıcısı
  • Bir veya daha fazla Microsoft işletim sistemi özellik tanımlayıcısı

İşletim sistemi tanımlayıcısını desteklemek için cihazın dize tanımlayıcısını uygulaması gerekir. Dize Tanımlayıcısı

Microsoft işletim sistemi dize tanımlayıcısı, 0xEE dize dizininde depolanan bir dizedir. Bu dizenin biçimi iyi tanımlanmıştır.

Aşağıdaki hedeflere ulaşmak için Microsoft İşletim Sistemi Dize Tanımlayıcısı kullanılır

  • Microsoft işletim sistemi dize tanımlayıcısının varlığı, işletim sistemine cihazın microsoft işletim sistemi özellik tanımlayıcıları biçiminde ekli bilgiler içerdiğini belirtir.
  • Microsoft işletim sistemi dize tanımlayıcısı, bunu dize dizini 0xEE bir cihazda olabilecek rastgele dizelerden ayırmak için kullanılan ekli bir imza alanına sahiptir.
  • Microsoft işletim sistemi dize tanımlayıcısı, Microsoft işletim sistemi tanımlayıcısının gelecekteki düzeltmelerine olanak tanıyan ekli bir sürüm numarasına da sahiptir.

Bir cihazda yalnızca bir Microsoft işletim sistemi dizesi tanımlayıcısı depolanır. Aşağıdaki bölümlerde, Microsoft işletim sistemi dize tanımlayıcısının yapısı ve alma yordamı açıklanmaktadır. İşletim Sistemi Dizisinin Yapısı

Dize tanımlayıcısının yapısı aşağıdadır:

Dize Tanımlayıcı Yapısı

Alan Uzunluk (Bayt) Değer Açıklama

bLength

1

0x12

Tanımlayıcının uzunluğu

bDescriptorType

1

0x03

Dize tanımlayıcısı

qwSignature

14

"MSFT100"

İmza alanı (4D00530046005400310030003000)

bMS_VendorCode

1

Satıcı Kodu

Diğer işletim sistemi özellik tanımlayıcılarını almak için satıcı kodu

bPad

1

0x00

Ped alanı

Microsoft işletim sistemi dize tanımlayıcısının yapısı 1.00 sürümü için sabittir ve toplam uzunluğu 18 bayttır. Microsoft işletim sistemi dize tanımlayıcısının sürüm numarası qwSignature alanında listelenir. bMS_VendorCode alanında depolanan bilgiler tek bir bayt değeri olmalıdır. Microsoft işletim sistemi özellik tanımlayıcılarını almak için kullanılır ve bu bayt değeri aşağıdaki gibi açıklanan bmRequestType alanında kullanılır:

İşletim sistemi dize tanımlayıcısını alma

Dizede depolanan bilgileri almak için cihaza standart bir GET_DESCRIPTOR isteği verilmesi gerekir. İsteğin biçimi aşağıdadır:

Standart Get_Descriptor Dize İsteği

bmRequestType bRequest wValue wIndex wUzunluk Veri

1000 0000b

TANIMLAYICI_AL

0x03EE

0x0000

0x12

Dizeyi döndürür

bmRequestType alanı, veri aktarımı yönü, tanımlayıcı türü ve alıcı olmak üzere üç bölümden oluşan bir bit eşlemdir. USB belirtimine göre, bmRequestType değeri 1000 0000b (0x80) olarak ayarlanır.

GET_DESCRIPTOR isteği için wValue alanı iki bölüme ayrılır. Yüksek bayt tanımlayıcı türünü, düşük bayt ise tanımlayıcı dizinini depolar. Microsoft işletim sistemi dize tanımlayıcısını almak için yüksek bayt, 0x03 olarak ayarlanmalıdır ki bu da bir dize tanımlayıcısı alınmasına olanak tanır. Microsoft işletim sistemi dize tanımlayıcısı her zaman dizin 0xEE depolandığından, bu dize dizini wValue alanının alt baytında depolanmalıdır.

dil kimliğini depolamak için wIndex kullanılır, ancak Microsoft işletim sistemi dize tanımlayıcısı için sıfır olarak ayarlanmalıdır.

wLength alanı, alınacak dize tanımlayıcısının uzunluğunu belirtmek için kullanılır. Cihaz, 0x02-0xFF arasında geçerli herhangi bir aralığa yanıt vermelidir.

Cihazın ilgili adreste (0xEE) geçerli bir tanımlayıcısı yoksa, istek hatası verir veya duraklar. Cihazlar duraklama ile yanıt vermediğinde, cihaza tek uçlu sıfırla sıfırlama verilir (cihaz bilinmeyen bir duruma geçtiğinde kurtarmak amacıyla).

İşletim sistemi tanımlayıcısının bütünlüğünü doğrulama

Satıcıların bilgileri depolamak için herhangi bir dize kimliği kullanmasına izin verildiğinden, işletim sisteminin dizin 0xEE depolanan dizenin gerçekten Microsoft işletim sistemi dize tanımlayıcısı olduğunu doğrulaması gerekir. Bunu doğrulamak için aşağıdaki testler gerçekleştirilecektir. Her birinin başarısızlığı, Microsoft işletim sistemi özellik tanımlayıcılarının alınmasını engeller.

  • Satıcı bir dizeyi dizin konumunda 0xEE depolarsa, işletim sistemi dizeyi alır ve microsoft işletim sistemi dizesi olup olmadığını görmek için sorgular. Bu, dizedeki imza alanı daha önce belirtilen imza alanı girişiyle karşılaştırılarak doğrulanabilir. Bir uyumsuzluk, dizenin daha fazla ayrıştırılmasını durdurur.
  • İkinci test, imza alanında belirtilen sürüm numarasına göre dizenin uzunluğunun doğrulanmasını içerir. Belirtilen sürüm numarası ("MSFT100" dizesinde) 1.00'dır. Bu, 18 baytlık bir dize tanımlayıcısına karşılık gelir.

microsoft işletim sistemi dize tanımlayıcısı kısıtlamaları

Aşağıdaki kısıtlamalar Microsoft işletim sistemi dize tanımlayıcıları ve bunların alınması için geçerlidir:

  • Bilgileri Microsoft işletim sistemi tanımlayıcı belirtimiyle uyumlu olarak depolamak için, cihazda Microsoft İşletim Sistemi Tanımlayıcıları'nde belirtilen bilgilerle uyumlu olan tek ve yalnızca Microsoft işletim sistemi dize tanımlayıcısı olmalıdır.
  • Cihaz satıcısı, Microsoft işletim sistemi dize tanımlayıcısının bMS_VendorCode alanındaki herhangi bir değeri kullanabilir

Özellik Tanımlayıcısı

Özellik tanımlayıcısı, belirli bir amaç için tanımlanmış sabit biçimli bir tanımlayıcıdır.

İşletim sistemi özellik tanımlayıcısını alma

Microsoft işletim sistemi özellik tanımlayıcısını almak için cihaza özel bir GET_MS_DESCRIPTOR isteği verilmesi gerekir. İsteğin biçimi aşağıdadır:

Standart cihaz isteği biçimi

bmRequestType bRequest wValue wIndex wUzunluk Veri

1100 0000b

GET_MS_DESCRIPTOR # Microsoft Tanımlayıcı Al<|endoftext|>

X

Özellik Dizini

Uzunluk

Tanımlayıcı döndürür

bmRequestType alanı, veri aktarımı yönü, tanımlayıcı türü ve alıcı olmak üzere üç bölümden oluşan bir bit eşlemdir ve USB belirtimine uygundur. Microsoft işletim sistemi özellik tanımlayıcısı satıcıya özgü bir tanımlayıcıdır ve veri aktarımının yönü cihazdan konağadır. Bu nedenle, bmRequestType değeri 1100 0000b (0xC0) olarak ayarlanır.

İsteğin biçimini belirtmek için bRequest alanı kullanılır. Microsoft işletim sistemi özellik tanımlayıcısını almak için bRequest alanı özel bir GET_MS_DESCRIPTOR bayt ile doldurulmalıdır. Bu bayt değeri, Microsoft dize tanımlayıcısından alınan bMS_VendorCodeile gösterilir. Microsoft işletim sistemi dize tanımlayıcısının alınması hakkında daha fazla bilgi için bkz. İşletim sistemi dize tanımlayıcısını alma.

wValue alanı özel kullanıma alınır ve yüksek bayt ve düşük bayt olarak ayrılır. Arabirim numarasını depolamak için yüksek bayt kullanılır. Bu, özellikle bileşik cihazlar veya birden çok arabirime sahipcihazlar için özellik tanımlayıcılarını arabirim temelinde depolamak için gereklidir. Çoğu durumda, arabirim 0 kullanılır. Sayfa numarasını depolamak için düşük bayt kullanılır. Bu özellik, tanımlayıcıların 64 KB boyut sınırına (wLength alanının boyutuna göre ayarlanmış bir sınır) sahip olmasını önler. Sayfa değeri başlangıçta sıfır olarak ayarlanmış bir tanımlayıcı getirilir. Tanımlayıcının tamamı (boyut 64 KB) alınırsa, sayfa değeri bir artırılır ve tanımlayıcı isteği tekrar (bu kez artırılmış sayfa değeriyle) gönderilir. Boyutu 64 KB'tan küçük bir tanımlayıcı alınana kadar bu işlem yinelenir. En fazla sayfa sayısının 255 olduğunu ve bunun tanımlayıcı boyutuna 16 MB'lık bir sınır yerleştirdiğini unutmayın.

wIndex alanı, alınan Microsoft işletim sistemi özellik tanımlayıcısı için özellik dizini numarasını depolar. Microsoft bu Microsoft işletim sistemi özellik tanımlayıcıları ve dizinleri listesini tutar. Microsoft işletim sistemi özellik tanımlayıcıları hakkında daha fazla bilgi edinmek için bkz. Microsoft İşletim Sistemi Tanımlayıcıları.

wLength alanı, getirilecek tanımlayıcının uzunluğunu belirtir. Tanımlayıcı, wLength alanında belirtilen bayt sayısından uzunsa, yalnızca tanımlayıcının ilk baytları döndürülür. wLength alanında belirtilen değerden daha kısaysa, kısa bir paket döndürülür.

Belirli bir işletim sistemi tanımlayıcısı yoksa, cihaz bir istek hatası veya duraklayacaktır.

Microsoft işletim sistemi özellik tanımlayıcı kısıtlamaları

Aşağıdaki kısıtlamalar Microsoft işletim sistemi özellik tanımlayıcıları ve bunların alınması için geçerlidir.

  • Tüm Microsoft işletim sistemi özellik tanımlayıcıları tanımlanır ve standartlaştırılır. Satıcıların Microsoft'un doğrudan onayı olmadan Microsoft işletim sistemi özellik tanımlayıcılarını değiştirmesine, eklemesine veya oluşturmasına izin verilmez.
  • Tüm Microsoft işletim sistemi özellik tanımlayıcıları, içlerinde bir boyut ve sürüm numarası bulunduracaktır. Bu değerler her zaman işletim sistemine doğru bilgileri raporlamalıdır.
  • Bir cihazın üretici yazılımına eklenmiş birden fazla Microsoft işletim sistemi özellik tanımlayıcısı olabilir.
  • Bazı Microsoft işletim sistemi özellik tanımlayıcıları arabirim düzeyinde depolanırken, diğerleri cihaza özeldir. Cihaz düzeyinde Microsoft işletim sistemi özellik tanımlayıcıları wValue alanının yüksek baytını sıfır olarak ayarlamalıdır.

özellik tanımlayıcısının Yapısı

Bir cihazın KENDISINI MBIM'yi destekleyebilecek şekilde tanımlamak için, tanımlanan özellik tanımlayıcılarından biri olan genişletilmiş yapılandırma tanımlayıcısını da desteklemesi gerekir. Bu tanımlayıcının yapısı aşağıdaki gibidir.

Üst Bilgi bölümü

Üst bilgi bölümü, genişletilmiş yapılandırma tanımlayıcısının geri kalanı hakkındaki bilgileri depolar. dwLength alanı, genişletilmiş yapılandırma tanımlayıcısının tamamının uzunluğunu içerir. Üst bilgi bölümünde başlangıçta 1.00 (0100H) olarak ayarlanacak bir sürüm numarası da bulunur. Bu tanımlayıcının gelecekteki düzeltmeleri daha sonraki bir aşamada yayınlanabilir. Genişletilmiş yapılandırma tanımlayıcısının gelecekteki sürümlerinin de üst bilgi bölümündeki girdi sayısını artırması gerekebileceğini unutmayın, bu nedenle lütfen bu sayının cihazda doğru bir şekilde depolandığını ve işletim sistemi tarafından okunduğunu doğrulayın.

Genişletilmiş yapılandırma tanımlayıcısı üst bilgisi bölümü

Ofset Alan Boyut Değer Açıklama

0

dwLength

4

İmzasız DWORD

Uzunluk alanı, genişletilmiş yapılandırma tanımlayıcısının uzunluğunu bayt cinsinden açıklar.

4

bcdVersion

2

BCD

İkili Kodlanmış Ondalık biçiminde genişletilmiş yapılandırma tanımlayıcısı sürüm numarası (örneğin, sürüm 1.00, 0100H'dir).

6

wIndex

2

KELİME

Sabit = 0x0004

8

bCount

1

BAYT

Üst bilgi bölümünü izleyen toplam işlev bölümü sayısı = 0x01

9

AYRILMIŞ

7

AYRILMIŞ

İşlevi bölümü

İşlev bölümü iki önemli bilgi parçası sağlar. Benzer bir amaca hizmet eden ardışık arabirimleri işlev gruplarına gruplandırarak her işlev için uyumlu ve alt uyumlu kimlikler sağlar.

MbIM cihazı tarafından kullanılması gereken değerler de dahil olmak üzere işlev bölümünün biçimi aşağıdadır:

Genişletilmiş yapılandırma tanımlayıcı işlevi bölümü

Uzaklık¹ Alan Boyut Değer Açıklama

0

bFirstInterfaceNumber

1

Bayt

Bu işlev için başlangıç arabirimi numarası = 0x00

1

bInterfaceCount

1

Bayt

Bu işlevden eklenmesi gereken toplam Arabirim sayısı = 0x01

2

uyumluID

8

Bayt

Uyumlu Kimlik

10

subCompatibleID

8

Bayt

Alt Uyumsuz Kimlik

18

AYRILMIŞ

6

AYRıLMıŞ = 0

Özel özellik bölümünün ¹Offset değeri sıfır noktaya ayarlandı. Genişletilmiş yapılandırma tanımlayıcısının başından bir alanın uzaklığını hesaplamak için, önündeki bölümlerin uzunluğunu ekleyin.

MBIM işlevini gösteren yapılandırmaya bağlı olarak Uyumlu ve Alt Uyumlu Kimlikler

bConfiguration uyumluID subCompatibleID

2

ALTRCFG

(0x41 0x4C 0x54 0x52 0x43 0x46 0x47 0x00)

20000000

(0x32 0x00 0x00 0x00 0x00 0x00 0x00 0x00)

3

ALTRCFG

(0x41 0x4C 0x54 0x52 0x43 0x46 0x47 0x00)

30000000

(0x33 0x00 0x00 0x00 0x00 0x00 0x00 0x00)

4

ALTRCFG

(0x41 0x4C 0x54 0x52 0x43 0x46 0x47 0x00)

40000000

(0x34 0x00 0x00 0x00 0x00 0x00 0x00 0x00)

  • bConfiguration, MBIM işlevini kullanıma sunan yapılandırmanın USB yapılandırma tanımlayıcısı içindeki bConfiguration değerini ifade eder. bConfiguration 1 olamaz çünkü bu, yalnızca CDROM işlevini gösteren varsayılan yapılandırmadır. bConfiguration 4'ten büyük olamaz; yani, MBIM işlevi ilk dört yapılandırmada kullanıma sunulmalıdır.
  • compatibleID tüm yapılandırmalarda aynı kalır. SubuyumluID yapılandırmaya göre değişir

Örnek

Bu tabloda örnek bir çoklu yapılandırma senaryosu gösterilmektedir. Tabloda, her bir yapılandırmada kullanılabilen işlevler ve işletim sisteminin farklı sürümlerinin bu yapılandırmaların her biri için gerçekleştirdiği eylemler listelenmektedir.

Çok yapılandırmalı mobil geniş bant cihaz örneği

bConfiguration 1 (Windows-7 Yapılandırması) 2 (IHV-NCM-1.0-Yapılandırma) 3 (Windows-8-Yapılandırma) 3 (IHV-NCM-2.0-Yapılandırma)

Kullanıma sunulan işlevler

CDROM

SD

CD-ROM

SD

NCM1.0

Modem

Televizyon

GPS

FP

PC/SC akıllı kart

Ses

Diag

CD-ROM

SD

MBIM

CD-ROM

SD

NCM2.0

Modem

Televizyon

GPS

FP

PC/SC akıllı kart

Ses

Diag

Aşağıdaki tablolarda, önceki örneğin çoklu yapılandırma senaryosu için Microsoft işletim sistemi dize tanımlayıcısı ve Microsoft işletim sistemi genişletilmiş yapılandırma özelliği tanımlayıcısı tarafından kullanılan değerler gösterilmektedir.

Çok yapılandırmalı mobil geniş bant cihaz örneği

Alan Uzunluk (Bayt) Değer

bLength

1

0x12

bDescriptorType

1

0x03

qwSignature

14

'MSFT100'

0x4D 0x00 0x53 0x00 0x46 0x00 0x54 0x00 0x31 0x00 0x30 0x00 0x30 0x00

bMS_VendorCode

1

0xA5

bPad

1

0x00

Örnek Microsoft İşletim Sistemi genişletilmiş yapılandırma özelliği tanımlayıcısı üst bilgisi

Ofset Alan Boyut Değer

0

dwLength

4

16

4

bcdVersion

2

0100H

6

wIndex

2

0x0004

8

bCount

1

1

9

AYRILMIŞ

7

Örnek Microsoft İşletim Sistemi genişletilmiş yapılandırma özelliği tanımlayıcı işlevi

Offset² Alan Boyut Değer

0

bFirstInterfaceNumber

1

1

bInterfaceCount

1

2

uyumluID

8

10

subCompatibleID

8

18

AYRILMIŞ

6

Özel özellik bölümünün ²Offset değeri sıfırlandı. Genişletilmiş yapılandırma tanımlayıcısının başından bir alanın uzaklığını hesaplamak için, önündeki bölümlerin uzunluğunu ekleyin.