Aracılığıyla paylaş


Windows Media Device Manager Mimarisi

Windows Media Cihaz Yöneticisi, bir uygulamanın veya eklentinin bir cihazla iletişim kurmasını sağlar. Uygulamalar cihaz meta verileri isteyebilir, ekli cihazları numaralandırıp keşfedebilir ve nesneleri (klasörler, dosyalar, çalma listeleri vb.) gönderebilir veya alabilir. Windows Media Device Manager, çağrılan cihaz türü ne olursa olsun çağıran uygulamaya tek bir API sağlar (MTP veya Yığın Depolama Sınıfı, sürüm 10'da oluşturulan hizmet sağlayıcıları veya Windows Media Device Manager'ın önceki sürümlerinde oluşturulmuş hizmet sağlayıcıları).

Windows Media Cihaz Yöneticisi, sistemin üç ana bileşeni için bir geçiş görevi görür: istekte bulunan uygulama (bilgi için, verileri okumak veya yazmak vb.); DRM korumalı dosyalarla iletişimi işleyen bir bileşen olan güvenli içerik sağlayıcısı; ve uygulamadan istek alan ve bu istekleri gerçekleştirmek için cihazla iletişim kuran bir hizmet sağlayıcısı. Hem uygulama hem de hizmet sağlayıcısı Windows Media Device Manager SDK'sı üzerine kurulmuştur.

Aşağıdaki diyagramda, bir masaüstü uygulamasının Windows Media Device Manager 11'i kullanarak bir cihazla nasıl iletişim kur olduğu gösterilmektedir.

Dört farklı cihaz türüyle iletişim kurarak bir uygulamayı gösteren diyagramı.

Yukarıdaki diyagramda, her biri kendi hizmet sağlayıcısına sahip dört farklı cihaz türüyle iletişim kurarak bir uygulama gösterilmektedir. Her hizmet sağlayıcısı belirli bir cihaz türüyle iletişim kuracak şekilde tasarlanmıştır; Bu diyagramda Microsoft tarafından sağlanan üç hizmet sağlayıcısı (Yığın Depolama Sınıfı cihazları, RAPI cihazları ve MTP cihazları için genel sınıf sürücüleri) ve üçüncü taraf tarafından oluşturulan özel bir cihaz için özel hizmet sağlayıcısı gösterilmektedir. Bir cihaz bağlandığında, Windows Media Device Manager bu cihaz için kayıtlı hizmet sağlayıcısının bir örneğini başlatır. Hizmet sağlayıcıları, uyguladıkları Windows Media Device Manager arabirimleri aracılığıyla uygulamadan istek alır, cihazla iletişim kurmak için uygun sürücüleri kullanır ve uygun sonuçları döndürür. Hizmet sağlayıcısı ile cihaz arasındaki iletişim, Windows Media Device Manager etki alanının dışındadır.

Hizmet sağlayıcıları uygulamada görünmez; Bir uygulama yalnızca "cihazların" listesini görür çünkü Windows Media Device Manager tüm cihazlar için standart bir yöntem ve arabirim kümesi sunar. Bir üretici özel bir hizmet sağlayıcısı oluşturursa, uygulamaların cihazı kullanabilmesi için tüm standart Windows Media Device Manager yöntemlerini işlemesi gerekir.

Bu diyagramda güvenli bir içerik sağlayıcısı (SCP) modülü de gösterilir. Bu modül, dijital hak yönetimi (DRM) korumalı içeriği işlemeden sorumludur. Microsoft, DRM korumalı WMA ve WMV dosyalarını işleyebilen bir SCP modülü sağlar. Bir uygulama veya cihaz diğer korumalı biçimleri işlemek istiyorsa, kendi SCP modülünü sağlaması gerekir. Uygulama veya hizmet sağlayıcısı SCP ile doğrudan anlaşmaz.

Hem uygulama hem de hizmet sağlayıcısı, uygulama ile bir cihaz için uygun hizmet sağlayıcısı arasındaki çağrıları yönlendiren Windows Media Device Manager'da oluşturulur; doğrudan cihazla iletişim kurmak hizmet sağlayıcısının sorumluluğundadır. Windows Media Device Manager bazı eylemleri gerçekleştirir (bağlı cihazları listeleme, çağrıları yönlendirme ve bileşen doğrulamasını işleme gibi); ancak, işin çoğu uygulamadan istek alan ve cihazla iletişim kuran hizmet sağlayıcısı tarafından gerçekleştirilir.

Windows Media Device Manager üzerinde oluşturulan bir uygulama, Windows Media Device Manager'ın önceki sürümlerinde oluşturulmuş cihazlar ve hizmet sağlayıcılarıyla iletişim kurabilir; ancak bu eski cihazlar 9 Serisi bileşenlerle (gösterilmez) çalıştırılır ve özellikle daha gelişmiş dijital hak yönetimi teknolojisi olmak üzere en yeni özellikleri desteklemez.

Cihazın Mimarisi

Aşağıdaki diyagramda, Windows Media Device Manager kullanan bir uygulama tarafından görüldüğü gibi basitleştirilmiş bir cihaz ve depolama hiyerarşisi gösterilmektedir.

bir cihazdaki depolamaları gösteren diyagram.

Yukarıdaki diyagramda, Windows Media Device Manager uygulaması tarafından görüldüğü gibi bağlı bir flash sürücünün basitleştirilmiş bir sürümü gösterilmektedir. Flash sürücü, seri numarası ve desteklenen biçim yapılandırmaları gibi özniteliklere ve özelliklere sahiptir. Flash cihazın hemen alt öğesi, bir görüntü ve şarkı içeren bir klasör içeren kök depolama nesnesidir.

Bir uygulama, IWMDeviceManagerarabiriminin köktarafından kullanıma sunulan bir numaralandırma yöntemini çağırarak ekli cihazların listesini numaralandırır. Cihazlar IWMDMDevice (veya türetilmiş) bir arabirimle temsil edilir. Bu arabirim cihaz adını, biçim özelliklerini, seri numarasını vb. almak için yöntemlerin yanı sıra cihazdaki depolamayı numaralandıran bir yöntemi kullanıma sunar. Windows Media Cihaz Yöneticisi'nde depolama, gerçek bir veri blobu olsun veya olmasın cihazdaki herhangi bir nesne türüdür. Örneğin: ses dosyaları, metin dosyaları, klasörler, dosya olarak depolanan çalma listeleri ve meta veri olarak depolanan çalma listeleri, klasörler ve meta veri öğeleri büyük olasılıkla fiziksel bir dosyayı temsil etmese de depolama alanı olarak kabul edilir. Bir depolamanın türü (veya biçimi), GetAttributes çağrılarak alınabilir (veya depolama biçimini isteyen GetMetadata).

Bir cihazdaki depolama alanları hiyerarşik olarak depolanır ve tüm cihazların kök depolama alanı vardır. Her depolama alanı, bu depolamanın IWMDMStorage::EnumStorage yöntemi çağrılarak numaralandırılmış sıfır veya daha fazla alt nesne tutabilir.

Diyagramdaki her depolama alanının kendisiyle ilişkilendirilmiş öznitelikleri ve meta verileri olduğunu unutmayın (tüm değerler gösterilmez). Öznitelikler basit, Boole bilgileri genellikle yönetim veya gezinti bilgilerini ("klasörleri var" veya "silebilir") açıklarken, meta veriler dize değerleri, sayılar veya karmaşık bilgiler (işleme özellikleri gibi) olabilir. Öznitelikler, SDK tarafından tanımlanan ve IWMDMStorage::GetAttributes veya IWMDMStorage2::GetAttributes2çağrılarak alınan oldukça sınırlı bir bayrak kümesiyle açıklanır. Meta veri değerleri benzersiz bir adla alınır; SDK, cihazların desteklemesi gereken bir dizi meta veri değeri tanımlar, ancak cihazlar kendimeta veri sabitlerini tanımlayabilir. Ancak, bir cihaz veya hizmet sağlayıcısı yeni bir meta veri sabiti tanımlarsa, uygulama geliştiricileri bu yeni sabitin farkında olmadığı sürece uygulamalar bu değeri isteyemez veya ayarlayamaz. Hizmet sağlayıcısının meta verilerin alınmasını veya ayarlanmasını desteklemek için IWMDMStorage3veya sonrakidesteklemesi gerekir. Daha fazla bilgi için bkz. Meta Verileri ve Öznitelikleri Alma ve Ayarlama.

Hizmet Sağlayıcıları

Hizmet sağlayıcısı, uygulama ile cihaz arasında aracı görevi görür. Hizmet sağlayıcısı uygulama geliştiricisi tarafından görünmez, bu nedenle bir uygulama geliştiricisinin hizmet sağlayıcısı geliştirme hakkında hiçbir şey bilmesi gerekmez. Ancak, bir cihazla iletişim kurma işini hizmet sağlayıcısı yapar.

Hizmet sağlayıcısı, bir uygulamadan istek alan ve bunları gerçekleştirmek için cihazla iletişim kuran, Windows Media Device Manager üzerinde oluşturulmuş bir COM DLL'dir. Masaüstü uygulamasıyla iletişim, Windows Media Cihaz Yöneticisi tarafından aracılık edilir; cihazla iletişim, hizmet sağlayıcısının denetimi altındadır.

Hizmet sağlayıcısı uygulamadan cihaz içeriğini listeleme istekleri, cihaz özelliklerine yönelik istekler, veri okuma veya yazma istekleri vb. alır. Bir cihazın tasarımını, komutları uygun biçimde ve protokolde gönderebilecek kadar iyi bilmesi gerekir. Ayrıca çalma listeleri için gerekli dosya uzantısı gibi cihaza özgü gereksinimleri gizleyebilir, böylece uygulamaların cihazı kullanabilmesi için bu gereksinimleri bilmesi gerekmez.

Microsoft, genel MTP cihazları, Yığın Depolama Sınıfı cihazları ve RAPI cihazları dahil olmak üzere standart cihaz türleri için bir dizi hizmet sağlayıcısı sağlar. Bir cihaz tasarımcısının özel hizmet sağlayıcısı oluşturmasının tek nedeni, bir cihazın standart hizmet sağlayıcılarının işlemediği belirli veya olağan dışı veri depolama gereksinimlerinin olmasıdır; örneğin, dosyaların belirli konumlarda depolanması gerekiyorsa ve cihaz işletim sistemi bunu otomatik olarak işlemezse.

Bir cihaz bilgisayara bağlandığında, işletim sistemi her Windows Media Device Manager uygulaması için uygun hizmet sağlayıcısının bir örneğini oluşturur. İkinci bir Windows Media Device Manager uygulaması başlatılırsa, hizmet sağlayıcısının ikinci bir örneği yüklenir. Ancak, her hizmet sağlayıcısı birden çok cihazı işleyebilir. Aşağıdaki diyagramda bu gösterilmektedir.

İki uygulamayla iletişim kurarak iki mtp cihazını gösteren diyagram.

Yukarıdaki diyagramda iki MTP cihazıyla iletişim kurarak iki farklı uygulama gösterilmektedir. Cihazlar aynı hizmet sağlayıcısı sınıfını kullanır, ancak her uygulamanın aynı hizmet sağlayıcısının kendi örneği vardır. Her hizmet sağlayıcısı örneği cihazlarla iletişim kurar. Hizmet sağlayıcısının farklı örnekleri birbirinin farkında değildir.

Birçok uygulama yönteminin karşılık gelen adlandırılmış bir hizmet sağlayıcısı yöntemi vardır. Uygulama bir yöntemi çağırdığında, Windows Media Device Manager çağrıyı hizmet sağlayıcısındaki ilgili yönteme yönlendirir (ancak önce bazı ek iç eylemler gerçekleştirebilir). Örneğin, uygulama IWMDMDevice3::GetPropertyçağırdığında, Windows Media Device Manager bu çağrıyı hizmet sağlayıcısının IMDSPDevice3::GetPropertyuygulamasına yönlendirir. (Çoğu uygulama arabirimi IWMDM ile başlar ve ilgili hizmet sağlayıcısı arabirimi IMDSP ile başlar). Hizmet sağlayıcısının bu yöntem çağrısını işlemesi ve uygun bir sonuç döndürmesi beklenir.

Uygulama hiçbir zaman bir cihazı doğrudan keşfetmez veya cihazla iletişim kurmaz (IWMDMDevice3::D eviceIoControl veya IWMDMStorage::SendOpaqueCommand); uygulama, bir cihazı mümkün olan en mantıksal ve basit şekilde temsil etmesi gereken hizmet sağlayıcısıyla iletişim kurar. Uygulama cihaz hakkında bilgi istediğinde veya cihazdaki nesneleri numaralandırdığında, hizmet sağlayıcısı cihazı uygun bir şekilde sorgular ve uygun bilgileri alır ve döndürür. Uygunsa, dosya kuruluşunu cihazda fiziksel olarak depolandığı şekilden farklı bir şekilde kullanıma sunabilir. Cihazı her ne kadar kullanıma sunarsa da, uygulamanın ihtiyaçlarını bulmasına ve gönderdiği komutları işlemesine olanak tanımak için tutarlı ve mantıksal bir şekilde olmalıdır. İyi bir hizmet sağlayıcısı cihaza özgü özellikleri gizler; örneğin, cihaz bir çalma listesini fiziksel olarak özel dosya uzantısına sahip bir dosya olarak depolarsa, uygulama cihazda bir çalma listesi oluşturduğunda hizmet sağlayıcısı bu uzantıyı otomatik olarak eklemelidir; bir çalma listesi nesnesi oluştururken uygulamanın uygun uzantıyı bilmesini beklememelidir.

Hizmet sağlayıcıları, çağırma uygulamasının işlemi içinde çalışır. Bunun tek istisnası, kendi işleminde çalışan MTP hizmet sağlayıcısıdır. Bu nedenle, engellenen bir hizmet sağlayıcısının çağıran uygulamanın engellemesine neden olması riski vardır. Bu nedenle, hizmet sağlayıcıları sağlam olacak ve engellemeyi önleyecek şekilde tasarlanmalı ve belirli bir yöntem çağrısının hızlı bir şekilde döndürülmemesi durumunda uygulamaların duraklamaması için tasarlanması gerekir.

Başlarken