PFN_CERT_DLL_OPEN_STORE_PROV_FUNC Rückruffunktion (wincrypt.h)

Die CertDllOpenStoreProv-Funktion wird von einem Speicheranbieter implementiert und zum Öffnen eines Speichers verwendet. Diese Funktion wird von der CertOpenStore-Funktion aufgerufen.

Hinweis Die ersten fünf Parameter sind mit den übereinstimmenden Parametern in CertOpenStore identisch.
 

Syntax

PFN_CERT_DLL_OPEN_STORE_PROV_FUNC PfnCertDllOpenStoreProvFunc;

BOOL PfnCertDllOpenStoreProvFunc(
  [in]      LPCSTR lpszStoreProvider,
  [in]      DWORD dwEncodingType,
  [in]      HCRYPTPROV_LEGACY hCryptProv,
  [in]      DWORD dwFlags,
  [in]      const void *pvPara,
  [in]      HCERTSTORE hCertStore,
  [in, out] PCERT_STORE_PROV_INFO pStoreProvInfo
)
{...}

Parameter

[in] lpszStoreProvider

Ein Zeiger auf eine MIT NULL endende ANSI-Zeichenfolge, die den Speicheranbietertyp enthält.

Die folgenden Werte stellen die vordefinierten Speichertypen dar. Der Typ des Speicheranbieters bestimmt den Inhalt des pvPara-Parameters sowie die Verwendung und Bedeutung des hohen Worts des dwFlags-Parameters . Weitere Speicheranbieter können mithilfe der Funktion CryptInstallOIDFunctionAddress oder CryptRegisterOIDFunction installiert oder registriert werden. Weitere Informationen zum Hinzufügen von Speicheranbietern finden Sie unter Erweitern der CertOpenStore-Funktionalität.

Anbieterbezeichner BESCHREIBUNG pvPara-Inhalte
CERT_STORE_PROV_MEMORY

sz_CERT_STORE_PROV_MEMORY

Erstellt einen Zertifikatspeicher im zwischengespeicherten Arbeitsspeicher. Zunächst werden keine Zertifikate, Zertifikatsperrlisten (Certificate Revocation Lists , CRLs) oder Zertifikatvertrauenslisten (Certificate Trust Lists , CTLs) in den Speicher geladen. Wird in der Regel zum Erstellen eines temporären Speichers verwendet.

Jegliches Hinzufügen von Zertifikaten, Zertifikatsperrlisten oder CTLs oder Änderungen an Eigenschaften von Zertifikaten, Zertifikatsperrlisten oder CTLs in einem Speicherspeicher werden nicht automatisch gespeichert. Sie können mithilfe von CertSaveStore in einer Datei oder in einem Speicherblob gespeichert werden.

Wird nicht verwendet.
CERT_STORE_PROV_FILE Initialisiert den Speicher mit Zertifikaten, Zertifikatsperrlisten und CTLs, die aus einer angegebenen geöffneten Datei gelesen werden. Dieser Anbieter erwartet, dass die Datei nur einen serialisierten Speicher und keine mit PKCS #7 signierten Nachrichten oder ein einzelnes codiertes Zertifikat enthält.

Der Dateizeiger muss am Anfang der Serialisierungsspeicherinformationen positioniert werden. Nachdem die Daten im serialisierten Speicher in den Zertifikatspeicher geladen wurden, wird der Dateizeiger am Anfang aller Daten positioniert, die den serialisierten Speicherdaten in der Datei folgen können. Wenn CERT_FILE_STORE_COMMIT_ENABLE in dwFlags festgelegt ist, wird das Dateihandle dupliziert, und der Speicher wird immer als serialisierter Speicher committet. Die Datei wird nicht geschlossen, wenn der Speicher geschlossen wird.

Ein Zeiger auf das Handle einer Datei, die mit CreateFile geöffnet wurde.
CERT_STORE_PROV_FILENAME_A Initialisiert den Speicher mit Zertifikaten, Zertifikatsperrlisten und CTLs aus einer Datei. Der Anbieter öffnet die Datei und versucht zunächst, die Datei als serialisierter Speicher, dann als PKCS #7-signierte Nachricht und schließlich als einzelnes codiertes Zertifikat zu lesen.

Der dwEncodingType-Parameter muss die Codierungstypen enthalten, die sowohl mit Nachrichten als auch mit Zertifikaten verwendet werden sollen. Wenn die Datei ein X.509-codiertes Zertifikat enthält, schlägt der Öffnenvorgang mit GetLastError fehl und gibt ERROR_ACCESS_DENIED zurück. Wenn das flag CERT_FILE_STORE_COMMIT_ENABLE in dwFlags festgelegt ist, lautet der an CreateFile übergebene dwCreationDisposition-Wert wie folgt:

  • Wenn das flag CERT_STORE_CREATE_NEW_FLAG festgelegt ist, verwendet CreateFile CREATE_NEW.
  • Wenn das flag CERT_STORE_OPEN_EXISTING_FLAG festgelegt ist, verwendet CreateFile OPEN_EXISTING.
  • Für alle anderen Einstellungen von dwFlags verwendet CreateFile OPEN_ALWAYS.

Wenn dwFlags CERT_FILE_STORE_COMMIT_ENABLE enthält, wird die Datei je nach geöffnetem Dateityp entweder als PKCS #7 oder als serialisierter Speicher committet. Wenn die Datei leer war oder der Dateiname entweder die Erweiterung .p7c oder .spc aufweist, wird die Datei als PKCS #7 committet. Andernfalls wird die Datei als serialisierter Speicher committet.

Ein Zeiger auf eine NULL-beendete ANSI-Zeichenfolge, die den Namen einer vorhandenen, ungeöffneten Datei enthält.
CERT_STORE_PROV_FILENAME

CERT_STORE_PROV_FILENAME_W

sz_CERT_STORE_PROV_FILENAME

sz_CERT_STORE_PROV_FILENAME_W

Identisch mit CERT_STORE_PROV_FILENAME_A. Ein Zeiger auf eine mit NULL endende Unicode-Zeichenfolge, die den Namen einer vorhandenen, ungeöffneten Datei enthält.
CERT_STORE_PROV_COLLECTION

sz_CERT_STORE_PROV_COLLECTION

Öffnet einen Speicher, der eine Sammlung anderer Stores sein wird. Speicher werden der Auflistung mithilfe von CertAddStoreToCollection und CertRemoveStoreFromCollection hinzugefügt oder daraus entfernt. Wenn einer Sammlung ein Speicher hinzugefügt wird, werden alle Zertifikate, ZERTIFIKATsperrlisten und CTLs in diesem Speicher für Suchvorgänge oder Enumerationen des Sammlungsspeichers verfügbar.

Das hohe Wort von dwFlags ist auf 0 (null) festgelegt.

Muss NULL sein.
CERT_STORE_PROV_REG Initialisiert den Speicher mit Zertifikaten, Zertifikatsperrlisten und CTLs aus einem Registrierungsunterschlüssel.

Dieser Anbieter öffnet oder erstellt die Registrierungsunterschlüssel Zertifikate, CRLs und CTLs unter dem in pvPara übergebenen Schlüssel. Der Eingabeschlüssel wird vom Anbieter nicht geschlossen. Vor der Rückgabe öffnet der Anbieter seine eigene Kopie des Schlüssels, der in pvPara übergeben wurde. Wenn CERT_STORE_READONLY_FLAG im low-Wort dwFlags festgelegt ist, werden Registrierungsunterschlüssel mithilfe von RegOpenKey mit KEY_READ_ACCESS geöffnet. Andernfalls werden Registrierungsunterschlüssel mithilfe von RegCreateKey mit KEY_ALL_ACCESS erstellt. Alle Änderungen am Inhalt des geöffneten Speichers werden sofort in der Registrierung gespeichert. Wenn jedoch CERT_STORE_READONLY_FLAG im niedrigen Wort dwFlags festgelegt ist, führt jeder Versuch, dem Inhalt des Speichers hinzuzufügen oder die Eigenschaft eines Kontexts zu ändern, zu einem Fehler, wobei GetLastError den E_ACCESSDENIED Code zurückgibt.

Das Handle eines geöffneten Registrierungsschlüssels.
CERT_STORE_PROV_SYSTEM_A Initialisiert den Speicher mit Zertifikaten, Zertifikatsperrlisten und CTLs aus dem angegebenen Systemspeicher.

Der Systemspeicher ist ein logischer Sammlungsspeicher, der aus mindestens einem physischen Speicher besteht. Ein physischer Speicher, der einem Systemspeicher zugeordnet ist, wird mit der CertRegisterPhysicalStore-Funktion registriert. Nachdem der Systemspeicher geöffnet wurde, werden alle physischen Speicher, die diesem zugeordnet sind, auch durch Aufrufe von CertOpenStore geöffnet und der Systemspeichersammlung mithilfe der CertAddStoreToCollection-Funktion hinzugefügt. Das hohe Wort dwFlags gibt den Speicherort des Systemspeichers an, der normalerweise auf CERT_SYSTEM_STORE_CURRENT_USER festgelegt ist. Ausführliche Informationen zu Registrierungsspeicherorten finden Sie weiter unten in diesem Thema unter dwFlags und Systemspeicherorte. Einige Systemspeicherstandorte können remote geöffnet werden. Weitere Informationen finden Sie unter Systemspeicherorte.

Ein Zeiger auf eine NULL-endende ANSI-Zeichenfolge, die einen Systemspeichernamen enthält, z. B. "My" oder "Root".
CERT_STORE_PROV_SYSTEM

CERT_STORE_PROV_SYSTEM_W

sz_CERT_STORE_PROV_SYSTEM

sz_CERT_STORE_PROV_SYSTEM_W

Identisch mit CERT_STORE_PROV_SYSTEM_A. Ein Zeiger auf eine unicode-Zeichenfolge, die null endet und einen Systemspeichernamen enthält, z. B. "My" oder "Root".
CERT_STORE_PROV_SYSTEM_REGISTRY_A Initialisiert den Speicher mit Zertifikaten, Zertifikatsperrlisten und CTLs aus einem physischen Registrierungsspeicher. Der physische Speicher wird nicht als Sammlungsspeicher geöffnet. Enumerationen und Suchvorgänge durchlaufen nur die Zertifikate, Zertifikatsperrlisten und CTLs in diesem physischen Speicher.

Das hohe Wort dwFlags gibt den Speicherort des Systemspeichers an, der normalerweise auf CERT_SYSTEM_STORE_CURRENT_USER festgelegt ist. Weitere Informationen finden Sie weiter unten in diesem Thema unter dwFlags . Einige Systemspeicherorte können remote geöffnet werden. Weitere Informationen finden Sie unter Systemspeicherorte.

Ein Zeiger auf eine NULL-endende ANSI-Zeichenfolge, die einen Systemspeichernamen enthält, z. B. "My" oder "Root".
CERT_STORE_PROV_SYSTEM_REGISTRY

CERT_STORE_PROV_SYSTEM_REGISTRY_W

sz_CERT_STORE_PROV_SYSTEM_REGISTRY

sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W

Identisch mit CERT_STORE_PROV_SYSTEM_REGISTRY_A. Ein Zeiger auf eine unicode-Zeichenfolge, die null endet und einen Systemspeichernamen enthält, z. B. "My" oder "Root".
CERT_STORE_PROV_PHYSICAL

CERT_STORE_PROV_PHYSICAL_W

sz_CERT_STORE_PROV_PHYSICAL

sz_CERT_STORE_PROV_PHYSICAL_W

Initialisiert den Speicher mit Zertifikaten, Zertifikatsperrlisten und CTLs aus einem angegebenen physischen Speicher, der Mitglied eines logischen Systemspeichers ist.

Zwei Namen werden durch einen dazwischen liegenden umgekehrten Schrägstrich (\) getrennt, z. B. "Root.LocalMachine". Hier ist "Root" der Name des Systemspeichers und ". LocalMachine" ist der Name des physischen Speichers. Die Namen des Systemspeichers und des physischen Speichers dürfen keine umgekehrten Schrägstriche enthalten. Das hohe Wort dwFlags gibt den Speicherort des Systemspeichers an, normalerweise CERT_SYSTEM_STORE_CURRENT_USER. Weitere Informationen finden Sie weiter unten in diesem Thema unter dwFlags . Einige physische Filialen können remote geöffnet werden.

Ein Zeiger auf eine Unicode-Zeichenfolge, die null endet und sowohl den Systemspeichernamen als auch physische Namen enthält.
CERT_STORE_PROV_MSG Initialisiert den Speicher mit Zertifikaten, Zertifikatsperrlisten und CTLs aus der angegebenen kryptografischen Nachricht. Der dwEncodingType-Parameter muss die Codierungstypen enthalten, die sowohl für Nachrichten als auch für Zertifikate verwendet werden. Ein HCRYPTMSG-Handle der codierten Nachricht, das von einem Aufruf von CryptMsgOpenToDecode zurückgegeben wird.
CERT_STORE_PROV_PKCS7

sz_CERT_STORE_PROV_PKCS7

Initialisiert den Speicher mit Zertifikaten, Zertifikatsperrlisten und CTLs aus einer codierten PKCS #7-signierten Nachricht. Der dwEncodingType-Parameter muss die Codierungstypen angeben, die sowohl mit Nachrichten als auch mit Zertifikaten verwendet werden sollen. Ein Zeiger auf eine CRYPT_DATA_BLOB-Struktur , die die codierte Nachricht darstellt.
CERT_STORE_PROV_SERIALIZED

sz_CERT_STORE_PROV_SERIALIZED

Initialisiert den Speicher mit Zertifikaten, Zertifikatsperrlisten und CTLs von einem Speicherort, der einen serialisierten Speicher enthält. Ein Zeiger auf eine CRYPT_DATA_BLOB Struktur, die das serialisierte Speicherblob enthält.
CERT_STORE_PROV_LDAP

CERT_STORE_PROV_LDAP_W

sz_CERT_STORE_PROV_LDAP

sz_CERT_STORE_PROV_LDAP_W

Initialisiert den Speicher mit Zertifikaten, Zertifikatsperrlisten und CTLs aus den Ergebnissen einer LDAP-Abfrage.

Um Schreibvorgänge für den Speicher auszuführen, muss die Abfragezeichenfolge eine BASE-Abfrage ohne Filter und ein einzelnes Attribut angeben.

Wenn der dwFlags-Parameter das CERT_LDAP_STORE_OPENED_FLAG-Flag enthält, ist dies die Adresse einer CERT_LDAP_STORE_OPENED_PARA-Struktur , die die zu verwendende festgelegte LDAP-Sitzung angibt.

Andernfalls ist dies ein Zeiger auf eine Unicode-Zeichenfolge mit Null-Termin, die die LDAP-Abfragezeichenfolge enthält. Weitere Informationen zu LDAP-Abfragezeichenfolgen finden Sie unter LDAP-Dialekt.

CERT_STORE_PROV_SMART_CARD

CERT_STORE_PROV_SMART_CARD_W

sz_CERT_STORE_PROV_SMART_CARD

sz_CERT_STORE_PROV_SMART_CARD_W

Derzeit nicht verwendet.  

[in] dwEncodingType

Gibt den Zertifikatcodierungstyp und den Nachrichtencodierungstyp an. Die Codierung wird nur verwendet, wenn der dwSaveAs-Parameter der CertSaveStore-FunktionCERT_STORE_SAVE_AS_PKCS7 enthält. Andernfalls wird der dwEncodingType-Parameter nicht verwendet.

Dieser Parameter ist nur anwendbar, wenn der anbietertyp CERT_STORE_PROV_MSG, CERT_STORE_PROV_PKCS7 oder CERT_STORE_PROV_FILENAME im lpszStoreProvider-Parameter angegeben ist. Für alle anderen Anbietertypen ist dieser Parameter nicht verwendet und sollte auf 0 (null) festgelegt werden.

Dieser Parameter kann eine Kombination aus einem oder mehreren der folgenden Werte sein.

Wert Bedeutung
PKCS_7_ASN_ENCODING
65536 (0x10000)
Gibt die PKCS #7-Nachrichtencodierung an.
X509_ASN_ENCODING
1 (0x1)
Gibt die X.509-Zertifikatcodierung an.

[in] hCryptProv

Ein Handle für einen Kryptografieanbieter. Dieser Parameter kann NULL sein.

[in] dwFlags

Diese Werte bestehen aus High-Word- und Low-Word-Werten, die mithilfe einer bitweisen OR-Operation kombiniert werden.

Der Low-Word-Teil von dwFlags steuert eine Vielzahl von allgemeinen Merkmalen des geöffneten Zertifikatspeichers . Dieser Teil kann mit allen Speicheranbietertypen verwendet werden. Der Low-Word-Teil von dwFlags kann einer der folgenden Werte sein.

Wert Bedeutung
CERT_STORE_CREATE_NEW_FLAG
Erstellen Sie einen neuen Speicher, falls kein Speicher vorhanden ist. Diese Funktion sollte fehlschlagen, wenn der Speicher bereits vorhanden ist.

Wenn weder CERT_STORE_OPEN_EXISTING_FLAG noch CERT_STORE_CREATE_NEW_FLAG festgelegt ist, öffnen Sie einen vorhandenen Speicher, oder erstellen und öffnen Sie einen Speicher, falls er noch nicht vorhanden ist.

CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG
Verzögern Sie das Schließen des Anbieters des Speichers, bis alle Zertifikate, Zertifikatsperrlisten oder CTLs, die sie aus dem Speicher erhalten haben, nicht mehr verwendet werden. Der Speicher wird tatsächlich geschlossen, wenn das letzte Zertifikat, die letzte Zertifikatsperrliste oder die letzte CTL aus dem Speicher freigegeben wird. Alle Änderungen, die an den Eigenschaften dieser Zertifikate, Zertifikatsperrlisten und CTLs vorgenommen werden, auch nach dem Aufruf dieser Funktion, müssen beibehalten werden.

Wenn dieses Flag nicht festgelegt ist und aus dem Speicher abgerufene Zertifikate, Zertifikatsperrlisten oder CTLs weiterhin verwendet werden, dürfen änderungen an den Eigenschaften dieser Zertifikate, Zertifikatsperrlisten und CTLs nicht beibehalten werden.

Wenn diese Funktion mit CERT_CLOSE_STORE_FORCE_FLAG aufgerufen wird, muss CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG ignoriert werden.

Wenn dieses Flag festgelegt ist und ein HCRYPTPROV-Wert ungleich NULL übergeben wird, wird dieser Anbieter auch nach dem Aufruf dieser Funktion weiterhin verwendet.

CERT_STORE_DELETE_FLAG
Der Speicher wird gelöscht, anstatt geöffnet zu werden. Diese Funktion gibt false sowohl für den Erfolg als auch für den Fehler des Löschvorgangs zurück. Um den Erfolg des Löschvorgangs anzugeben, rufen Sie SetLastError mit null auf. Um auf einen Fehler beim Löschen hinzuweisen, rufen Sie SetLastError mit dem entsprechenden Fehlercode auf.
CERT_STORE_ENUM_ARCHIVED_FLAG
Normalerweise ignoriert eine Enumeration aller Zertifikate im Speicher jedes Zertifikat, für das die eigenschaft CERT_ARCHIVED_PROP_ID festgelegt ist. Wenn dieses Flag festgelegt ist, enthält eine Enumeration der Zertifikate im Speicher alle Zertifikate im Speicher, einschließlich der Zertifikate mit der CERT_ARCHIVED_PROP_ID-Eigenschaft .
CERT_STORE_MAXIMUM_ALLOWED
Öffnen Sie den Speicher mit dem maximalen Satz zulässiger Berechtigungen. Wenn dieses Flag angegeben ist, werden Registrierungsspeicher zuerst mit Schreibzugriff geöffnet, und wenn dies fehlschlägt, werden sie mit schreibgeschütztem Zugriff erneut geöffnet.
CERT_STORE_NO_CRYPT_RELEASE_FLAG
Dieses Flag wird nicht verwendet, wenn der hCryptProv-ParameterNULL ist. Dieses Flag ist nur gültig, wenn ein CSP-Handle ungleich NULL als hCryptProv-Parameter übergeben wird. Das Festlegen dieses Flags verhindert die automatische Freigabe eines nicht standardmäßigen CSP, wenn der Zertifikatspeicher geschlossen wird.
CERT_STORE_OPEN_EXISTING_FLAG
Öffnen Sie nur einen vorhandenen Speicher. Wenn der Speicher nicht vorhanden ist, schlägt die Funktion fehl.
CERT_STORE_READONLY_FLAG
Öffnen Sie den Speicher im schreibgeschützten Modus. Jeder Versuch, den Inhalt des Speichers zu ändern, führt zu einem Fehler. Wenn dieses Flag festgelegt ist und ein registrierungsbasierter Speicheranbieter verwendet wird, werden die Registrierungsunterschlüssel mithilfe von RegOpenKey mit KEY_READ_ACCESS geöffnet. Andernfalls werden die Registrierungsunterschlüssel mithilfe von RegCreateKey mit KEY_ALL_ACCESS erstellt.
CERT_STORE_SET_LOCALIZED_NAME_FLAG
Wenn dieses Flag unterstützt wird, legt der Anbieter die CERT_STORE_LOCALIZED_NAME_PROP_ID Eigenschaft des Speichers fest. Der lokalisierte Name kann durch Aufrufen der CertGetStoreProperty-Funktion abgerufen werden, wobei dwPropID auf CERT_STORE_LOCALIZED_NAME_PROP_ID festgelegt ist. Dieses Flag wird für Anbieter von Typen CERT_STORE_PROV_FILENAME, CERT_STORE_PROV_SYSTEM, CERT_STORE_PROV_SYSTEM_REGISTRY und CERT_STORE_PROV_PHYSICAL_W unterstützt.
CERT_STORE_SHARE_CONTEXT_FLAG
Wenn Sie einen Speicher mehrmals öffnen, können Sie dieses Flag festlegen, um eine effiziente Speichernutzung sicherzustellen, indem Sie den Arbeitsspeicher für die codierten Teile eines Zertifikats, einer Zertifikatsperrliste oder eines CTL-Kontexts in den geöffneten Instanzen der Speicher wiederverwenden.
CERT_STORE_UPDATE_KEYID_FLAG
Listen von Schlüsselbezeichnern sind in CurrentUser und LocalMachine vorhanden. Diese Schlüsselbezeichner verfügen über Eigenschaften, die den Eigenschaften von Zertifikaten ähneln. Wenn die CERT_STORE_UPDATE_KEYID_FLAG festgelegt ist, wird diese Eigenschaft für jeden Schlüsselbezeichner am Speicherort des Speichers mit einer CERT_KEY_PROV_INFO_PROP_ID-Eigenschaft automatisch aus der Schlüsselbezeichnereigenschaft CERT_KEY_PROV_INFO_PROP_ID oder dem CERT_KEY_IDENTIFIER_PROP_ID des Zertifikats aktualisiert, das sich auf diesen Schlüsselbezeichner bezieht.
CERT_STORE_BACKUP_RESTORE_FLAG
Verwenden Sie die SE_BACKUP_NAME und SE_RESTORE_NAME Berechtigungen des Threads, um Registrierungs- oder dateibasierte Systemspeicher zu öffnen. Wenn der Thread nicht über diese Berechtigungen verfügt, muss bei dieser Funktion ein Fehler auftreten, bei dem der Zugriff verweigert wurde.
 

Die CERT_STORE_PROV_SYSTEM-, CERT_STORE_PROV_SYSTEM_REGISTRY- und CERT_STORE_PROV_PHYSICAL-Anbietertypen verwenden die folgenden hohen Wörter von dwFlags, um Registrierungsspeicherorte des Systemspeichers anzugeben:

CERT_SYSTEM_STORE_CURRENT_SERVICE

CERT_SYSTEM_STORE_CURRENT_USER

CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY

CERT_SYSTEM_STORE_LOCAL_MACHINE

CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE

CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY

CERT_SYSTEM_STORE_SERVICES

CERT_SYSTEM_STORE_USERS

Standardmäßig wird ein Systemspeicherort relativ zum HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE oder HKEY_USERS vordefinierten Registrierungsschlüssels geöffnet. Weitere Informationen finden Sie unter Speicherorte des Systemspeichers.

Die folgenden High-Word-Flags überschreiben dieses Standardverhalten.

Wert Bedeutung
CERT_SYSTEM_STORE_RELOCATE_FLAG
Beim Festlegen muss pvPara einen Zeiger auf eine CERT_SYSTEM_STORE_RELOCATE_PARA-Struktur und nicht eine Zeichenfolge enthalten. Die Struktur gibt sowohl den Namen des Speichers als auch seinen Speicherort in der Registrierung an.
CERT_SYSTEM_STORE_UNPROTECTED_FLAG
Wenn der CurrentUser-Stammspeicher geöffnet wird, werden standardmäßig alle SystemRegistry-Stammwurzeln, die sich nicht in der geschützten Stammliste befinden, aus dem Cache gelöscht, bevor diese Funktion zurückgegeben wird. Wenn dieses Flag festgelegt ist, wird dieser Standardwert überschrieben, und alle Wurzeln in der SystemRegistrierung werden zurückgegeben, und es wird keine Überprüfung der geschützten Stammliste durchgeführt.
 

Der CERT_STORE_PROV_REGISTRY Anbieter verwendet die folgenden High-Word-Flags.

Wert Bedeutung
CERT_REGISTRY_STORE_SERIALIZED_FLAG
Der CERT_STORE_PROV_REG Anbieter speichert Zertifikate, CRLs und CTLs in einem einzelnen, serialisierten Speicherunterschlüssel, anstatt den Standardspeichervorgang auszuführen. Standardmäßig wird jedes Zertifikat, jede Zertifikatsperrliste oder jede CTL als separater Registrierungsunterschlüssel unter dem entsprechenden Unterschlüssel gespeichert.

Dieses Flag wird hauptsächlich für Speicher verwendet, die aus der Gruppenrichtlinienvorlage (Group Policy Template, GPT) heruntergeladen wurden, z. B. die Stores CurrentUserGroupPolicy und LocalMachineGroupPolicy.

Wenn CERT_REGISTRY_STORE_SERIALIZED_FLAG festgelegt ist, werden Zusätze, Löschungen oder Eigenschaftenänderungen nicht beibehalten, bis ein Aufruf von CertCloseStore oder CertControlStore mithilfe von CERT_STORE_CTRL_COMMIT erfolgt.

CERT_REGISTRY_STORE_REMOTE_FLAG
pvPara enthält ein Handle für einen Registrierungsschlüssel auf einem Remotecomputer. Um auf einen Registrierungsschlüssel auf einem Remotecomputer zuzugreifen, müssen Sicherheitsberechtigungen auf dem Remotecomputer festgelegt werden, um den Zugriff zuzulassen. Weitere Informationen finden Sie in den Hinweisen.
 

Die CERT_STORE_PROV_FILE - und CERT_STORE_PROV_FILENAME-Anbietertypen verwenden die folgenden High-Word-Flags.

Wert Bedeutung
CERT_FILE_STORE_COMMIT_ENABLE
Durch Festlegen dieses Flags werden alle Ergänzungen zum Speicher oder alle Änderungen an Eigenschaften von Kontexten im Speicher an den Dateispeicher committet, entweder wenn CertCloseStore aufgerufen wird oder wenn CertControlStore mit CERT_STORE_CONTROL_COMMIT aufgerufen wird.

CertOpenStore schlägt mit E_INVALIDARG fehl, wenn sowohl CERT_FILE_STORE_COMMIT_ENABLE als auch CERT_STORE_READONLY_FLAG in dwFlags festgelegt sind.

 

Der CERT_STORE_PROV_LDAP Anbietertyp verwendet die folgenden High-Word-Flags.

Wert Bedeutung
CERT_LDAP_STORE_SIGN_FLAG
Um die für einige Anwendungen erforderliche Integrität zu gewährleisten, müssen Sie den gesamten LDAP-Datenverkehr zu und von einem LDAP-Server mithilfe des Kerberos-Authentifizierungsprotokolls digital signieren.
CERT_LDAP_STORE_OPENED_FLAG
Verwenden Sie dieses Flag, um eine vorhandene LDAP-Sitzung zu verwenden. Wenn dieses Flag angegeben wird, ist der pvPara-Parameter die Adresse einer CERT_LDAP_STORE_OPENED_PARA Struktur, die Informationen zur zu verwendenden LDAP-Sitzung enthält.
CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG
Führt eine reine A-Datensatz-DNS-Suche für die URL aus, die im pvPara-Parameter benannt ist. Dadurch wird verhindert, dass beim Auflösen von URL-Hostnamen falsche DNS-Abfragen generiert werden. Verwenden Sie dieses Flag, wenn Sie einen Hostnamen im Gegensatz zu einem Domänennamen für den pvPara-Parameter übergeben.
CERT_LDAP_STORE_UNBIND_FLAG
Verwenden Sie dieses Flag mit dem CERT_LDAP_STORE_OPENED_FLAG-Flag , damit die LDAP-Sitzung beim Schließen des Speichers ungebunden ist. Das System hebt die Bindung an die LDAP-Sitzung mithilfe der ldap_unbind-Funktion auf, wenn der Speicher geschlossen wird.

[in] pvPara

Ein 32-Bit-Wert, der zusätzliche Informationen für diese Funktion enthalten kann. Der Inhalt dieses Parameters hängt vom Wert des lpszStoreProvider und anderer Parameter ab.

[in] hCertStore

Das Handle des Speichers im Arbeitsspeicher, der geöffnet wurde und zum Tätigen von Aufrufen anderer speicherbezogener API-Aufrufe verwendet werden kann, z. B. CertAddSerializedElementToStore.

[in, out] pStoreProvInfo

Ein Zeiger auf die CERT_STORE_PROV_INFO Struktur, die aktualisiert werden soll. Die Datenstruktur wurde auf null gesetzt, und cbSize wurde vor dem Aufruf festgelegt.

Das cStoreProvFunc-Element der CERT_STORE_PROV_INFO-Struktur ist die Anzahl der implementierten Rückruffunktionen und sollte zuletzt festgelegt werden. Nachdem cStoreProvFunc festgelegt wurde, rufen alle nachfolgenden Speicheraufrufe, z. B . CertAddEncodedCertificateToStore, die entsprechende Anbieterrückruffunktion auf.

Rückgabewert

TRUE , wenn erfolgreich; andernfalls FALSE.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wincrypt.h

Weitere Informationen

CERT_STORE_PROV_INFO

Rückruffunktionen

CertAddEncodedCertificateToStore

CertOpenStore