NCryptSetProperty-Funktion (ncrypt.h)

Die NCryptSetProperty-Funktion legt den Wert für eine benannte Eigenschaft für ein CNG-Schlüsselspeicherobjekt fest.

Syntax

SECURITY_STATUS NCryptSetProperty(
  [in] NCRYPT_HANDLE hObject,
  [in] LPCWSTR       pszProperty,
  [in] PBYTE         pbInput,
  [in] DWORD         cbInput,
  [in] DWORD         dwFlags
);

Parameter

[in] hObject

Das Handle des Schlüsselspeicherobjekts, für das die -Eigenschaft festgelegt werden soll.

[in] pszProperty

Ein Zeiger auf eine Unicode-Zeichenfolge mit NULL-Beendigung, die den Namen der festzulegenden Eigenschaft enthält. Dies kann einer der vordefinierten Key Storage-Eigenschaftsbezeichner oder ein benutzerdefinierter Eigenschaftenbezeichner sein.

[in] pbInput

Die Adresse eines Puffers, der den neuen Eigenschaftswert enthält. Der cbInput-Parameter enthält die Größe dieses Puffers.

[in] cbInput

Die Größe des pbInput-Puffers in Bytes.

[in] dwFlags

Flags, die das Funktionsverhalten ändern. Dies kann null oder eine Kombination aus einem oder mehreren der folgenden Werte sein.

Wert Bedeutung
NCRYPT_PERSIST_FLAG
Die Eigenschaft sollte zusammen mit dem Schlüsselmaterial im Schlüsselspeicher gespeichert werden. Dieses Flag kann nur verwendet werden, wenn der hObject-Parameter das Handle eines persistenten Schlüssels ist. Die maximale Größe der Daten für eine persistente Eigenschaft beträgt NCRYPT_MAX_PROPERTY_DATA Bytes.
NCRYPT_PERSIST_ONLY_FLAG
Überschreiben Sie keine integrierten Werte für diese Eigenschaft, und legen Sie nur die vom Benutzer persistenten Eigenschaften des Schlüssels fest. Die maximale Größe der Daten für eine persistente Eigenschaft beträgt NCRYPT_MAX_PROPERTY_DATA Bytes. Dieses Flag kann nicht mit der eigenschaft NCRYPT_SECURITY_DESCR_PROPERTY verwendet werden.
NCRYPT_SILENT_FLAG
Fordert an, dass der Schlüsseldienstanbieter (Key Service Provider, KSP) keine Benutzeroberfläche anzeigt. Wenn der Anbieter die Benutzeroberfläche anzeigen muss, um zu funktionieren, schlägt der Aufruf fehl, und der KSP sollte den NTE_SILENT_CONTEXT Fehlercode als letzten Fehler festlegen.
 

Für die NCRYPT_SECURITY_DESCR_PROPERTY-Eigenschaft muss dieser Parameter auch einen der folgenden Werte enthalten, der den festzulegenden Teil der Sicherheitsbeschreibung identifiziert.

Wert Bedeutung
OWNER_SECURITY_INFORMATION
Legen Sie die Sicherheits-ID (SID) des Besitzers des Objekts fest. Verwenden Sie die SetSecurityDescriptorOwner-Funktion , um die Besitzer-SID in der SECURITY_DESCRIPTOR-Struktur festzulegen.
GROUP_SECURITY_INFORMATION
Legen Sie die SID der primären Gruppe des Objekts fest. Verwenden Sie die SetSecurityDescriptorGroup-Funktion , um die Gruppen-SID in der SECURITY_DESCRIPTOR-Struktur festzulegen.
DACL_SECURITY_INFORMATION
Legen Sie die diskretionäre Zugriffssteuerungsliste (DACL) fest. Verwenden Sie die SetSecurityDescriptorDacl-Funktion , um die DACL in der SECURITY_DESCRIPTOR-Struktur festzulegen.
SACL_SECURITY_INFORMATION
Legen Sie die Systemzugriffssteuerungsliste (SACL ) fest. Verwenden Sie die SetSecurityDescriptorSacl-Funktion , um die SACL in der SECURITY_DESCRIPTOR-Struktur festzulegen.
LABEL_SECURITY_INFORMATION
Legen Sie den obligatorischen Eintrag für die Zugriffssteuerung der Bezeichnung in der SACL des -Objekts fest. Verwenden Sie die SetSecurityDescriptorSacl-Funktion , um die SACL in der SECURITY_DESCRIPTOR-Struktur festzulegen. Weitere Informationen zum obligatorischen Eintrag für die Zugriffssteuerung für die Bezeichnung finden Sie unter Entwurf des Windows-Integritätsmechanismus.

Rückgabewert

Gibt einen status Code zurück, der den Erfolg oder Fehler der Funktion angibt.

Mögliche Rückgabecodes umfassen folgendes, sind aber nicht darauf beschränkt.

Rückgabecode Beschreibung
ERROR_SUCCESS
Die Funktion war erfolgreich.
NTE_BAD_FLAGS
Der dwFlags-Parameter enthält einen wert, der ungültig ist.
NTE_INVALID_HANDLE
Der hObject-Parameter ist ungültig.
NTE_INVALID_PARAMETER
Mindestens ein Parameter ist ungültig.
NTE_NO_MEMORY
Ein Fehler bei der Speicherzuordnung ist aufgetreten.
NTE_NOT_SUPPORTED
Die angegebene Eigenschaft wird für das -Objekt nicht unterstützt.

Hinweise

Ein Dienst darf diese Funktion nicht über seine StartService-Funktion aufrufen. Wenn ein Dienst diese Funktion über seine StartService-Funktion aufruft, kann ein Deadlock auftreten, und der Dienst reagiert möglicherweise nicht mehr.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile ncrypt.h
Bibliothek Ncrypt.lib
DLL Ncrypt.dll