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.
[Gilt für KMDF und UMDF]
Die WdfFdoInitOpenRegistryKey Methode öffnet den Hardwareschlüssel eines Geräts oder den Softwareschlüssel eines Treibers in der Registrierung und erstellt ein Framework-Registrierungsschlüsselobjekt, das den Registrierungsschlüssel darstellt.
Syntax
NTSTATUS WdfFdoInitOpenRegistryKey(
[in] PWDFDEVICE_INIT DeviceInit,
[in] ULONG DeviceInstanceKeyType,
[in] ACCESS_MASK DesiredAccess,
[in, optional] PWDF_OBJECT_ATTRIBUTES KeyAttributes,
[out] WDFKEY *Key
);
Die Parameter
[in] DeviceInit
Ein Zeiger auf eine WDFDEVICE_INIT Struktur, die der Treiber aus seiner EvtDriverDeviceAdd Rückruffunktion abgerufen hat.
[in] DeviceInstanceKeyType
Gibt an, welcher Schlüssel oder Unterschlüssel geöffnet werden soll.
Hinweis
UMDF unterstützt das Erstellen von Unterschlüsseln nicht.
Dies ist ein bitweiser OR der folgenden Flags (die in Wdm.hdefiniert sind).
| DeviceInstanceKeyType-Flag | Bedeutung | Rahmenwerk |
|---|---|---|
| PLUGPLAY_REGKEY_DEVICE | Öffnet den Hardwareschlüssel des Geräts. | KMDF/UMDF |
| PLUGPLAY_REGKEY_DRIVER | Öffnet den Softwareschlüssel des Treibers. Ein UMDF-Treiber, der dieses Flag festlegt, muss auch DesiredAccess- auf KEY_READfestlegen. Andernfalls gibt diese Methode STATUS_ACCESS_DENIEDzurück. | KMDF/UMDF |
| PLUGPLAY_REGKEY_CURRENT_HWPROFILE | Ein KMDF-Treiber verwendet dieses Kennzeichen, um die Kopie des Hardware- oder Softwareschlüssels zu öffnen, der sich im aktuellen Hardwareprofil befindet. | KMDF |
| PLUGPLAY_REGKEY_DRIVER | WDF_REGKEY_DRIVER_SUBKEY | Ein UMDF-Treiber verwendet diese Flags zusammen, um den ServiceName Unterschlüssel des Softwareschlüssels des Treibers für lese-/schreibzugriff zu öffnen. | UMDF |
| PLUGPLAY_REGKEY_DEVICE | WDF_REGKEY_DEVICE_SUBKEY | Ebenso verwendet ein UMDF-Treiber diese Flags, um den ServiceName Unterschlüssel des Hardwareschlüssels des Geräts für lese-/schreibzugriff zu öffnen. | UMDF |
[in] DesiredAccess
Ein ACCESS_MASK-typed-Wert, der Zugriffsrechte angibt, die der Treiber für den angegebenen Registrierungsschlüssel anfordert.
Ein KMDF-Treiber fordert in der Regel KEY_READ, KEY_WRITEoder KEY_READ | KEY_WRITE.
Wenn Sie einen UMDF-Treiber schreiben, verwenden Sie die folgende Tabelle.
| DeviceInstanceKeyType | DesiredAccess |
|---|---|
| PLUGPLAY_REGKEY_DEVICE | KEY_READ |
| PLUGPLAY_REGKEY_DEVICE | WDF_REGKEY_DEVICE_SUBKEY | KEY_READ oder KEY_READ | KEY_SET_VALUE |
| PLUGPLAY_REGKEY_DRIVER | KEY_READ |
| PLUGPLAY_REGKEY_DRIVER | WDF_REGKEY_DRIVER_SUBKEY | KEY_READ oder KEY_READ | KEY_SET_VALUE |
Bitten Sie als bewährte Methode nur um die Zugriffstypen, die Ihr Treiber benötigt.
[in, optional] KeyAttributes
Ein Zeiger auf eine WDF_OBJECT_ATTRIBUTES-Struktur, die vom Treiber bereitgestellte Attribute für das neue Registrierungsschlüsselobjekt enthält. Dieser Parameter ist optional und kann WDF_NO_OBJECT_ATTRIBUTES werden.
[out] Key
Ein Zeiger auf einen Speicherort, der ein Handle für das neue Registrierungsschlüsselobjekt empfängt.
Rückgabewert
WdfFdoInitOpenRegistryKey gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt die Methode möglicherweise einen der folgenden Werte zurück:
| Rückgabecode | BESCHREIBUNG |
|---|---|
|
WdfFdoInitOpenRegistryKey wurde bei IRQL = PASSIVE_LEVEL nicht aufgerufen. |
|
Ein ungültiger Parameter wurde angegeben, oder der Treiber hat die WDFDEVICE_INIT Struktur nicht aus seiner EvtDriverDeviceAdd Rückruffunktion abgerufen. Bei UMDF kann dieser Rückgabewert auf unzureichende Zugriffsrechte hinweisen. |
|
Ein Registrierungsschlüsselobjekt konnte nicht zugeordnet werden. |
|
Der angegebene Registrierungsschlüssel ist nicht vorhanden. |
Eine Liste mit anderen Rückgabewerten, die von der WdfFdoInitOpenRegistryKey--Methode möglicherweise zurückgegeben werden, finden Sie unter Framework Object Creation Errors.
Die Methode kann auch andere NTSTATUS-Wertezurückgeben.
Bemerkungen
Der Treiber muss WdfFdoInitOpenRegistryKey- aufrufen, bevor WdfDeviceCreateaufgerufen wird. Weitere Informationen zum Aufrufen WdfDeviceCreatefinden Sie unter Creating a Framework Device Object.
Weitere Informationen zur WdfFdoInitOpenRegistryKey--Methode finden Sie unter Erstellen von Geräteobjekten in einem Funktionstreiber.
oder weitere Informationen zu den Registrierungs-, Hardware- und Softwareschlüsseln und Registrierungsobjekten finden Sie unter Verwenden der Registrierung in Framework-Based Drivers.
Beispiele
Im folgenden Codebeispiel wird der Hardwareschlüssel eines Geräts mit Lesezugriff geöffnet.
WDFKEY key;
NTSTATUS status;
status = WdfFdoInitOpenRegistryKey(
DeviceInit,
PLUGPLAY_REGKEY_DEVICE,
GENERIC_READ,
WDF_NO_OBJECT_ATTRIBUTES,
&key
);
if (!NT_SUCCESS(status)) {
return status;
}
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform | universell |
| Minimale KMDF-Version | 1.0 |
| Mindest-UMDF-Version | 2.0 |
| Kopfzeile | wdffdo.h (include Wdf.h) |
| Bibliothek | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
| IRQL | PASSIVE_LEVEL |
| DDI-Complianceregeln | DeviceInitAPI(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |