ZwDeleteValueKey-Funktion (wdm.h)

Die ZwDeleteValueKey-Routine löscht einen Werteintrag, der einem Namen entspricht, aus einem geöffneten Schlüssel in der Registrierung. Wenn kein solcher Eintrag vorhanden ist, wird ein Fehler zurückgegeben.

Syntax

NTSYSAPI NTSTATUS ZwDeleteValueKey(
  [in] HANDLE          KeyHandle,
  [in] PUNICODE_STRING ValueName
);

Parameter

[in] KeyHandle

Das Handle für den Registrierungsschlüssel, der den relevanten Werteintrag enthält. Dieser Schlüssel muss geöffnet worden sein, wobei KEY_SET_VALUE für den gewünschten Zugriff festgelegt wurde. Dieses Handle wird durch einen erfolgreichen Aufruf von ZwCreateKey oder ZwOpenKey erstellt.

[in] ValueName

Zeiger auf eine UNICODE_STRING-Struktur , die den Namen des zu löschenden Werteintrags enthält. Dieser Parameter kann eine leere Zeichenfolge sein, wenn der Werteintrag keinen Namen hat.

Rückgabewert

ZwDeleteValueKey gibt STATUS_SUCCESS oder einen entsprechenden Fehler zurück, status den endgültigen Abschluss status des Vorgangs darstellt. Mögliche Fehler status Codes sind:

Rückgabecode Beschreibung
STATUS_ACCESS_DENIED Das KeyHandle-Handle verfügt nicht über den KEY_SET_VALUE Zugriff.
STATUS_INSUFFICIENT_RESOURCES Zusätzliche Ressourcen, die für diese Funktion erforderlich waren, waren nicht verfügbar.
STATUS_INVALID_HANDLE Der angegebene KeyHandle-Parameter war ein NULL-Zeiger oder kein gültiger Zeiger auf einen geöffneten Registrierungsschlüssel.
STATUS_OBJECT_NAME_NOT_FOUND Der Registrierungsschlüsseleintrag ValueName wurde nicht gefunden.

Hinweise

Das an ZwDeleteValueKey übergebeneKeyHandle muss geöffnet worden sein, damit der Löschzugriff erfolgreich ist. Die DesiredAccess-Werte von KEY_SET_VALUE, KEY_WRITE und KEY_ALL_ACCESS enthalten die KEY_SET_VALUE Zugriffsmaske, die für den Löschzugriff erforderlich ist. Eine Beschreibung der möglichen Werte für DesiredAccess finden Sie unter ZwCreateKey.

Wenn Rückruffunktionen für diesen Registrierungsschlüssel registriert sind, werden diese Rückruffunktionen aufgerufen.

Gerätetreiber sollten nicht versuchen, ZwDeleteValueKey direkt aufzurufen, um Werteinträge in einem Unterschlüssel von \Registry zu löschen. \ResourceMap-Schlüssel . Nur das System kann Werteinträge in der \Registry schreiben oder löschen . \HardwareDescription-Struktur .

Wenn der Aufruf dieser Funktion im Benutzermodus erfolgt, sollten Sie den Namen "NtDeleteValueKey" anstelle von "ZwDeleteValueKey" verwenden.

Bei Aufrufen von Kernelmodustreibern können sich die NtXxx - und ZwXxx-Versionen einer Windows Native System Services-Routine anders verhalten, da sie Eingabeparameter verarbeiten und interpretieren. Weitere Informationen zur Beziehung zwischen den Nt Xxx- und ZwXxx-Versionen einer Routine finden Sie unter Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Weitere Informationen

Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen

ZwCreateKey

ZwDeleteKey

ZwEnumerateValueKey

ZwOpenKey

ZwQueryValueKey

ZwSetValueKey