Aracılığıyla paylaş


Bluetooth cihazı yükleme

Önemli

Bu makale programcılara yöneliktir. Bluetooth cihazı yükleme sorunları yaşayan bir müşteriyseniz bkz. Windows'ta Bluetooth cihazı eşleştirme

Bluetooth profili sürücüleri için iki yükleme türü vardır:

  • Uzak cihazlar için istemci tarafı yükleme, cihazın hizmetlerini tanıttığı ve bilgisayarın ona bağlandığı durumlarda yapılır. Örnekler şunlardır: fareler, klavyeler ve yazıcılar.
  • Sunucu tarafı kurulum, bilgisayarın hizmetleri duyurduğu ve uzak cihazların bu hizmetleri kullanmak için bilgisayara bağlanabildiği bir işlemidir. Örneğin, bir satıcı bir mobil cihazın bilgisayara bağlı bir yazıcıya yazdırabilmesi için sunucu tarafı yüklemesi yazabilir.

Bu iki yükleme türü farklı yükleme yordamları gerektirir.

İstemci tarafı profil sürücüsü yükleme

Bluetooth özellikli bir cihaz kullanmak isteyen bir kullanıcı, cihazı bilgisayarın aralığı içine getirir ve istemci tarafı profil sürücüsü için aşağıdaki yükleme sırasını kullanarak bilgisayardan uzak cihaza bir bağlantı başlatır.

  1. Bilgisayar aralığındaki tüm cihazları bulmak için Denetim Masası'ndaBluetooth cihazı ekle'yi seçin.
  2. Eşleştirilen cihazı seçin.
  3. Cihazı, PIN değişimi içerebilecek veya içermeyecek yerel radyoyla eşleştirin.
  4. Yerel radyo, uzak cihazda desteklenen hizmetleri tanımlamak için bir Hizmet Bulma Protokolü (SDP) sorgusu yayınlar.
  5. Yeni Donanım Bulundu Sihirbazı, yerel sabit disk sürücüsünde ve Windows Update'te uygun sürücüleri arar.
  6. Yeni Donanım Bulundu Sihirbazı cihaz için uygun bir sürücü bulamazsa, kullanıcıdan profil sürücüsünün cihaz kurulum bilgileri dosyasını (INF dosyası) içeren profil sürücüsü yükleme medyasını eklemesini ister.

Sunucu tarafı profil sürücüsü yükleme

Bluetooth sürücü yığını, Bluetooth SIG tarafından tanımlanan hizmet GUID'lerini ve Bluetooth SIG tarafından tanımlanmayan özel GUID'leri destekler.

Uyarı

Microsoft Windows SDK ile sağlanan guidgen.exe aracı, özel GUID'ler oluşturmak için kullanılabilir.

Uzak Bluetooth cihazlarının kullanabildiği bilgisayar işlevselliğini kullanıma sunma amacıyla kullanıcı modu yükleme uygulaması yazılmalıdır.

Yükleme uygulamasının, işlevselliğin kullanıma sunmasına yönelik bir hizmet GUID'i oluşturmak için Bluetooth sürücü yığınıyla iletişim kurması gerekir. Satıcılar, uygulamadaki ve cihaz yükleme INF dosyasında hizmet GUID'sini belirtir.

Yükleme uygulamasının kullanıcı modu API'sini BluetoothSetLocalServiceInfo olarak çağırması gerekir. Uygulamanın bu API'yi çağırabilmesi için önce uygulamanın SE_LOAD_DRIVER_NAME güvenlik ayrıcalığına sahip olması gerekir. Aşağıdaki kod örneği, bu ayrıcalığı nasıl edineceklerini gösterir. Örnekte hata işlemenin gösterilmiyor olduğuna dikkat edin.

HANDLE procToken;
LUID luid;
TOKEN_PRIVILEGES tp;

OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &procToken);

LookupPrivilegeValue(NULL, SE_LOAD_DRIVER_NAME, &luid);

tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(procToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILEGES) NULL, (PDWORD)NULL);

Profil sürücüsü INF dosyası

Profil sürücüsünün INF dosyası, istemci tarafı yüklemesi için bir Bluetooth cihazı hakkında bilgi içerir. Sunucu tarafı yükleme için INF dosyası, yükleme uygulaması tarafından oluşturulan hizmet GUID'sine karşılık gelen bir cihaz kimliği belirtir. Tüm Bluetooth cihazları Bluetooth sınıfının üyeleridir. Bluetooth sınıf yükleyicisi (Bthci.dll), profil sürücülerinin yüklenmesine yardımcı olur.

INF dosyalarını oluşturma ve dağıtma ve sürücüleri yükleme hakkında daha fazla bilgi için bkz. INF Dosyası ve INF Dosyası Oluşturma Bölümleri ve Yönergeleri.

Tak Çalıştır Kimlikleri

Bluetooth sürücü yığını, aşağıdaki şablonlara göre donanım kimlikleri oluşturur:

  • BTHENUM\{ ServiceGUID}_VID& nnnnnnnn
  • BTHENUM\{ ServiceGUID}_VID& nnnnnnnn_PID& nnnn
  • BTHENUM\{ ServiceGUID}_LOCALMFG& nnnn

Bluetooth sürücü yığını, aşağıdaki şablona göre uyumlu kimlikler oluşturur:

  • BTHENUM\{ ServiceGUID}

ServiceGUID , Bluetooth belirtimi tarafından tanımlandığı gibi 128 bit GUID'ye genişletilmiş bir 16 bit GUID'dir. Örneğin, {00001124-0000-1000-8000-00805F9B34FB} bir HID cihazına karşılık gelir.

  • VID&'den sonra gelen sekiz basamak satıcı kimlik koduna karşılık gelir.
  • PID'i izleyen dört basamak ve ürün kimliği koduna karşılık gelir.
  • LOCALMFG&'yi izleyen dört basamak, yerel Bluetooth radyosunun üreticisine karşılık gelir.
  • VID/PID ve LOCALMFG etiketleri birbirinden bağımsızdır.

En genel cihaz kimliği tek başına bir ServiceGUID'dir . Örneğin:

BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}

Bluetooth sürücü yığını, hem uzak cihazdaki hem de INF dosyasındaki Tak ve Kullan kimliklerini kullanarak profil sürücünüzü ve yazılımınızı yalnızca uzak bir cihazın belirli bir sürümünde çalışacak şekilde yükleyerek kısıtlanabilir. Bluetooth sürücü yığını, yalnızca cihaz yığının SDP kullanarak algılayabileceği bir Tak Çalıştır Kimliği yayımlarsa bir VID/PID çifti oluşturur. Örneğin:

BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}_VID& nnnnnnnn_PID& nnnn

Bluetooth sürücü yığını, INF dosyanızdaki cihaz kimliğinde LOCALMFG etiketini belirterek yalnızca belirli bir yerel Bluetooth radyosunda çalıştırılacak profil sürücüsü ve yazılımı yüklemeyle sınırlandırılabilir. Örneğin:

BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}_LOCALMFG& nnnn