Freigeben über


RegGetKeySecurity-Funktion (winreg.h)

Die RegGetKeySecurity-Funktion ruft eine Kopie des Sicherheitsdeskriptors ab, der den angegebenen geöffneten Registrierungsschlüssel schützt.

Syntax

LSTATUS RegGetKeySecurity(
  [in]            HKEY                 hKey,
  [in]            SECURITY_INFORMATION SecurityInformation,
  [out, optional] PSECURITY_DESCRIPTOR pSecurityDescriptor,
  [in, out]       LPDWORD              lpcbSecurityDescriptor
);

Parameter

[in] hKey

Ein Handle für einen geöffneten Schlüssel, für den der Sicherheitsdeskriptor abgerufen werden soll.

[in] SecurityInformation

Ein SECURITY_INFORMATION Wert, der die angeforderten Sicherheitsinformationen angibt.

[out, optional] pSecurityDescriptor

Ein Zeiger auf einen Puffer, der eine Kopie des angeforderten Sicherheitsdeskriptors empfängt.

[in, out] lpcbSecurityDescriptor

Ein Zeiger auf eine Variable, die die Größe des Puffers in Byte angibt, auf den der pSecurityDescriptor-Parameter verweist. Wenn die Funktion zurückgibt, enthält die Variable die Anzahl der Bytes, die in den Puffer geschrieben werden.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion ERROR_SUCCESS zurück.

Wenn die Funktion fehlschlägt, gibt sie einen in WinError.h definierten Fehlercode ungleich null zurück. Sie können die FormatMessage-Funktion mit dem flag FORMAT_MESSAGE_FROM_SYSTEM verwenden, um eine generische Beschreibung des Fehlers abzurufen.

Hinweise

Wenn der durch den pSecurityDescriptor-Parameter angegebene Puffer zu klein ist, gibt die Funktion ERROR_INSUFFICIENT_BUFFER zurück, und der Parameter lpcbSecurityDescriptor enthält die Anzahl von Bytes, die für den angeforderten Sicherheitsdeskriptor erforderlich sind.

Um den Besitzer, die Gruppe oder die dacl (Discretionary Access Control List ) aus dem Sicherheitsdeskriptor des Schlüssels zu lesen, muss dem aufrufenden Prozess beim Öffnen des Handles READ_CONTROL Zugriff gewährt worden sein. Um READ_CONTROL Zugriff zu erhalten, muss der Aufrufer der Besitzer des Schlüssels sein, oder die DACL des Schlüssels muss den Zugriff gewähren.

Um die Systemzugriffssteuerungsliste (SACL) aus dem Sicherheitsdeskriptor zu lesen, muss dem aufrufenden Prozess beim Öffnen des Schlüssels ACCESS_SYSTEM_SECURITY Zugriff gewährt worden sein. Die richtige Möglichkeit, diesen Zugriff zu erhalten, besteht darin, die SE_SECURITY_NAME Berechtigung im aktuellen Token des Aufrufers zu aktivieren, das Handle für ACCESS_SYSTEM_SECURITY Zugriff zu öffnen und dann die Berechtigung zu deaktivieren.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winreg.h (Windows.h einschließen)
Bibliothek Advapi32.lib
DLL Advapi32.dll

Weitere Informationen

FormatMessage

Low-Level-Access Control

Low-Level-Access Control Functions

RegDeleteKey

RegOpenKeyEx

RegSetKeySecurity

SECURITY_INFORMATION