Logische und physische Speicher
Standardsystemspeicher, einschließlich MY, CA und ROOT, werden als logische Sammlungsspeicher mit einer Reihe vordefinierter physischer Speicher als Memberspeicher implementiert. Die physischen Mitgliedsspeicher eines Systemspeichers werden automatisch geöffnet, wenn der Systemspeicher geöffnet wird. Ein Benutzer kann jeder Systemspeichersammlung zusätzliche physische Speicher hinzufügen. Die CryptoAPI-Funktion CertRegisterPhysicalStore fügt einer Systemspeichersammlung einen neuen physischen Speicher hinzu. CertUnregisterPhysicalStore hebt die Zuordnung eines physischen Speichers zu einem logischen Systemspeicher auf. CertRegisterSystemStore erstellt einen neuen Systemspeicher unter einem Registrierungs-hKey, während CertUnregisterSystemStore einen Systemspeicher aus der Registrierung entfernt.
In CryptoAPI sind Systemspeicher logische Speicher mit zugeordneten physischen Speicher. Alle Zertifikate in einem vorhandenen Systemspeicher bleiben verfügbar, und das physische Hinzufügen neuer Zertifikate erfolgt in den physischen Speicher, aus denen der logische Systemspeicher besteht.
Benutzer, die es vorziehen, weiterhin physische Systemspeicher zu verwenden und nicht in logische Speicher zu konvertieren, können Systemspeicher mit dem CERT_STORE_PROV_SYSTEM_REGISTRY Anbieter öffnen. Dieser Anbieter verwendet weiterhin jeden Systemspeicher als einzelnen physischen Speicher.
Die Funktionen CertEnumSystemStoreLocation, CertEnumSystemStore und CertEnumPhysicalStore listen Systemspeicherorte, verfügbare Systemspeicher und alle physischen Speicher auf, die Mitglieder eines Systemspeichers sind.
Systemspeicher können auch verschoben werden. Standardmäßig wird ein Systemspeicher relativ zu einem Registrierungsunterschlüssel nach einem vordefinierten Muster geöffnet. Weitere Informationen finden Sie unter Systemspeicherorte. Durch festlegen CERT_SYSTEM_STORE_RELOCATE_FLAG im dwFlags-Parameter , der an CertOpenStore übergeben wird, wird ein Systemspeicher in der Registrierung unter einem vom Benutzer angegebenen Registrierungsunterschlüssel anstelle des vordefinierten platziert.