Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.