Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis: Ab Windows 8.1 Anbieter nicht mehr erforderlich, die Ein-/Aus-Funktion (für Bluetooth 4.0-Funkgeräte) in einer Software-DLL zu implementieren, wie in diesem Thema beschrieben, da das Betriebssystem diese Funktionalität jetzt verarbeitet. Windows 8.1 ignorieren eine solche DLL, auch wenn vorhanden.
Für Windows 8 müssen Bluetooth-Funkgeräte die Ein-/Aus-Software-Funktion unterstützen. Um den Anbietern maximale Flexibilität zu ermöglichen, unterstützt der Bluetooth Media Radio Manager ein Plug-In, damit diese Funktionalität für Benutzer verfügbar gemacht werden kann.
Um dieses DLL-Plug-In bereitzustellen, müssen zwei Dinge getan werden.
Es muss eine DLL erstellt werden, die die richtigen Funktionen exportiert. Die DLL muss auf dem Computer registriert werden. Die DLL ist für das Beibehalten des Funkstatus verantwortlich, einschließlich systemübergreifender Neustarts. Die DLL muss zwei Funktionen exportieren:
- BluetoothEnableRadio: Die Funkunterstützungs-DLL implementiert BluetoothEnableRadio, damit Windows das Radio ein- oder ausschalten kann.
C++
DWORD WINAPI BluetoothEnableRadio(
BOOL fEnable
);
fenable: Legen Sie auf TRUE fest, um das Radio einzuschalten. Legen Sie auf FALSE fest, um das Radio auszuschalten.
Rückgabewert: Geben Sie ERROR_SUCCESS zurück, wenn der aktuelle Zustand in den Zustand fEnable geändert wurde. Andernfalls wird ein WIN32-Fehlercode zurückgegeben, wenn der aktuelle Zustand nicht geändert wurde.
- IsBluetoothRadioEnabled: Die Funkunterstützungs-DLL implementiert IsBluetoothRadioEnabled, damit Windows feststellen kann, ob die Stromversorgung des Radios ein- oder ausgeschaltet ist.
C++
DWORD WINAPI IsBluetoothRadioEnabled(
BOOL* pfEnabled
);
pfEnabled: Zeiger auf Puffer, der beschreibt, ob die Stromversorgung des Funkgeräts ein- oder ausgeschaltet ist.
Rückgabewert: Gibt ERROR_SUCCESS zurück, wenn der aktuelle Zustand abgerufen wurde. Der Wert, auf den pfEnabled verweist, enthält nun den Zustand. (true oder false). Andernfalls wird ein WIN32-Fehlercode zurückgegeben, wenn der aktuelle Zustand nicht abgerufen wurde. Der Wert, auf den pfEnabled verweist, ist undefiniert und sollte nicht verwendet werden.
DLL-Registrierung
Um die Steuerung des Software-Optionsschalters im Menü und im Applet der Systemsteuerung zu aktivieren, muss diese Unterstützungs-DLL registriert sein. Legen Sie den folgenden Registrierungswert auf den vollständigen Pfad (kann Umgebungsvariablen enthalten) zur betreffenden DLL fest.
Schlüssel: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Radio Support
Wertname: "SupportDLL"
Wertdaten : (der Pfad)
Beispiel:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Radio Support]
"SupportDLL"="C:\Program Files\Fabrikam\BthSupport.dll"
Es ist erforderlich, die DLL an einem sicheren Speicherort wie C:\Programme\Fabrikam zu installieren.
Anforderungen und Empfehlungen
Dieses Design ermöglicht zwar Flexibilität bei der Steuerung der Hardware, es ist jedoch erforderlich, dass der Aus-Zustand keine Übertragung/Empfang vom Funkgerät bewirkt. Darüber hinaus wird empfohlen, das Radio auf den niedrigsten Leistungszustand zu schalten, um Energie zu sparen, und es aus dem Bus zu entfernen, damit der Bluetooth-Stapel entladen werden kann.
BluetoothEnableRadio gibt erst nach der Änderung des Funkzustands ein Ergebnis zurück. Da diese DLL-Erweiterung eine einheitliche ein-/aus-Funkinfrastruktur in Windows bereitstellen soll, sollte die Verwendung der DLL für Windows-Komponenten reserviert sein. Es liegt in der Verantwortung der DLL, sicherzustellen, dass das richtige Ergebnis zurückgegeben wird, wenn die DLL auch von einer Nicht-Windows-Komponente verwendet wird, oder wenn ein Hardwareschalter implementiert ist, der das Radio außerhalb des Kontexts des Bluetooth Media Radio Managers ausschalten könnte (z. B. ein Schalter, der zum Ausschalten des Radios festverdrahtet ist).
Windows 8 Funkverwaltung erfordert die DLL, um ihre Anweisungen im Kontext des lokalen Dienstkontos auszuführen. In diesem Kontext verfügt die DLL über die Mindestberechtigung auf dem lokalen Computer, die in der Regel kleiner ist als die eines normalen Benutzerkontexts.
Die Funkunterstützungs-DLL sollte die entsprechenden Überprüfungen durchführen, um sicherzustellen, dass die entsprechende Hardware vorhanden ist, bevor Aktionen ausgeführt werden. Wenn die entsprechende Hardware nicht auf dem System gefunden wird, sollte die Funkunterstützungs-DLL einen entsprechenden Fehlercode zurückgeben.
Beispielquellen für Bluetooth-Softwareradios
Registrierungsdatei
Windows-Registrierungs-Editor-Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BthServ]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BthServ\Parameters]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BthServ\Parameters\Radio Support]
"SupportDLL"=hex(2):25,00,73,00,79,00,73,00,74,00,65,00,6d,00,6d,00,72,00,6f,00,6f,\
00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\
72,00,73,00,75,00,70,00,70,00,6f,00,72,00,74,00,2e,00,64,00,6c,00,6c,00,00,00,\
00
MAKEFILE
###### --------------------------------------------------------------------
######
###### Copyright(c) Microsoft Corp., 2012
######
###### --------------------------------------------------------------------
!ifdef NTMAKEENV
!INCLUDE $(NTMAKEENV)\makefile.def
!else # NTMAKEENV
!error - You forgot to set your build environment
!endif
RSupport.cpp
/*++ Copyright (c) Microsoft Corporation. All rights reserved.
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
PURPOSE.
Module Name:
Rsupport.cpp
Abstract:
--*/
DWORD WINAPI IsBluetoothRadioEnabled(BOOL* pfEnabled)
{
// If the radio is enabled, set *pfEnabled = TRUE else set *pfEnabled = FALSE
return ERROR_SUCCESS;
}
DWORD WINAPI BluetoothEnableRadio(BOOL fEnable)
{
if (fEnabled)
{
// Enable the radio here
}
else
{
// Disable the radio here
}
return ERROR_SUCCESS;
}
RSupport.def
/*++
Copyright (c) Microsoft Corporation. All rights reserved.
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
PURPOSE.
Module Name:
Rsupport.def
Abstract:
--*/
LIBRARY rsupport.dll
EXPORTS
BluetoothEnableRadio
IsBluetoothRadioEnabled
Sample SOURCES
#
# Copyright 2012 - Microsoft Corporation
#
TARGETNAME=rsupport
TARGETPATH=obj
TARGETTYPE=DYNLINK
UMTYPE=windows
USE_MSVCRT=1
TARGETLIBS= \
$(SDK_LIB_PATH)\kernel32.lib \
$(SDK_LIB_PATH)\user32.lib \
C_DEFINES=-DWIN32 -DUNICODE -D_UNICODE
SOURCES = RSupport.cpp