CryptQueryObject-Funktion (wincrypt.h)
Syntax
BOOL CryptQueryObject(
[in] DWORD dwObjectType,
[in] const void *pvObject,
[in] DWORD dwExpectedContentTypeFlags,
[in] DWORD dwExpectedFormatTypeFlags,
[in] DWORD dwFlags,
[out] DWORD *pdwMsgAndCertEncodingType,
[out] DWORD *pdwContentType,
[out] DWORD *pdwFormatType,
[out] HCERTSTORE *phCertStore,
[out] HCRYPTMSG *phMsg,
[out] const void **ppvContext
);
Parameter
[in] dwObjectType
Gibt den Typ des abzufragten Objekts an. Dies muss einer der folgenden Werte sein.
Wert | Bedeutung |
---|---|
|
Das Objekt wird in einer Struktur im Arbeitsspeicher gespeichert. |
|
Das Objekt wird in einer Datei gespeichert. |
[in] pvObject
Ein Zeiger auf das objekt, das abgefragt werden soll. Der Typ des Datenzeigers hängt vom Inhalt des dwObjectType-Parameters ab.
dwObjectType-Wert | Bedeutung |
---|---|
|
Dieser Parameter ist ein Zeiger auf eine CERT_BLOB oder eine ähnliche Struktur, die das abzufragende Objekt enthält. |
|
Dieser Parameter ist ein Zeiger auf eine Unicode-Zeichenfolge mit Null-Termin, die den Pfad und den Namen der abzufragenden Datei enthält. |
[in] dwExpectedContentTypeFlags
Gibt den erwarteten Inhaltstyp an. Dies kann einer der folgenden Werte sein.
Wert | Bedeutung |
---|---|
|
Der Inhalt kann ein beliebiger Typ sein. Dies schließt das flag CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD nicht ein.
Wenn dieses Flag angegeben ist, versucht diese Funktion, Informationen über das Objekt zu erhalten, und versucht verschiedene Inhaltstypen, bis der richtige Inhaltstyp gefunden oder die Inhaltstypen erschöpft sind. Dies ist offensichtlich ineffizient, sodass dieses Flag nur verwendet werden sollte, wenn der Inhaltstyp nicht bekannt ist. |
|
Der Inhalt ist ein einzelnes Zertifikat. |
|
Der Inhalt ist ein ASN.1-codiertes ( Abstract Syntax Notation One ) X509_CERT_PAIR (ein codiertes Zertifikatpaar, das entweder Vorwärts-, Rückwärts- oder Vorwärts- und Umgekehrtzertifikate enthält). |
|
Der Inhalt ist eine einzelne Zertifikatsperrliste. |
|
Der Inhalt ist eine einzelne CTL. |
|
Der Inhalt ist ein PFX-Paket (PKCS #12), wird aber nicht von dieser Funktion geladen. Sie können die PFXImportCertStore-Funktion verwenden, um diese in einen Speicher zu laden. |
|
Der Inhalt ist ein PFX-Paket (PKCS #12) und wird von dieser Funktion gemäß den im folgenden Hinweis angegebenen Bedingungen geladen.
Hinweis
Wenn das PFX-Paket ein eingebettetes Kennwort enthält, bei dem es sich nicht um eine leere Zeichenfolge oder NULL handelt, und das Kennwort nicht durch einen Active Directory-Prinzipal (AD) geschützt war, der den aufrufenden Benutzer enthält, kann diese Funktion das PFX-Paket nicht entschlüsseln. Das Paket kann jedoch entschlüsselt werden, wenn das Kennwort, das beim Erstellen des PFX-Pakets verwendet wurde, mit einem AD-Prinzipal verschlüsselt wurde und der Benutzer als Teil dieses Prinzipals über die Berechtigung zum Entschlüsseln des Kennworts verfügt. Weitere Informationen finden Sie im PvPara-Parameter und im PKCS12_PROTECT_TO_DOMAIN_SIDS-Flag der PFXExportCertStoreEx-Funktion . Sie können PFX-Kennwörter ab Windows 8 und Windows Server 2012 für einen AD-Prinzipal schützen. |
|
Der Inhalt ist eine mit PKCS #7 signierte Nachricht. |
|
Der Inhalt ist eine eingebettete PKCS #7 signierte Nachricht. |
|
Der Inhalt ist eine PKCS #7-Nachricht ohne Vorzeichen. |
|
Der Inhalt ist eine PKCS #10-Nachricht. |
|
Der Inhalt ist ein serialisiertes einzelnes Zertifikat. |
|
Der Inhalt ist eine serialisierte einzelne Zertifikatsperrliste. |
|
Der Inhalt wird mit einer einzelnen CTL serialisiert. |
|
Der Inhalt ist ein serialisierter Speicher. |
[in] dwExpectedFormatTypeFlags
Gibt das erwartete Format des zurückgegebenen Typs an. Dies kann einer der folgenden Werte sein.
Wert | Bedeutung |
---|---|
|
Der Inhalt kann in einem beliebigen Format zurückgegeben werden. |
|
Der Inhalt sollte im HEXA-codierten ASCII-Format mit dem Präfix "{ASN}" zurückgegeben werden. |
|
Der Inhalt sollte im Base64-codierten Format zurückgegeben werden. |
|
Der Inhalt sollte im Binärformat zurückgegeben werden. |
[in] dwFlags
Dieser Parameter ist für die zukünftige Verwendung reserviert und muss auf 0 (null) festgelegt werden.
[out] pdwMsgAndCertEncodingType
Ein Zeiger auf einen DWORD-Wert , der den in der Nachricht verwendeten Codierungstyp empfängt. Wenn diese Informationen nicht benötigt werden, legen Sie diesen Parameter auf NULL fest.
Dieser Parameter kann eine Kombination aus einem oder mehreren der folgenden Werte empfangen.
Wert | Bedeutung |
---|---|
|
Gibt die PKCS 7-Nachrichtencodierung an. |
|
Gibt die X.509-Zertifikatcodierung an. |
[out] pdwContentType
Ein Zeiger auf einen DWORD-Wert , der den tatsächlichen Typ des Inhalts empfängt. Wenn diese Informationen nicht benötigt werden, legen Sie diesen Parameter auf NULL fest. Der zurückgegebene Inhaltstyp kann einer der folgenden Werte sein.
Wert | Bedeutung |
---|---|
|
Der Inhalt ist ein einzelnes Zertifikat. |
|
Der Inhalt ist ein ASN.1-codierter X509_CERT_pair. |
|
Der Inhalt ist eine einzelne Zertifikatsperrliste. |
|
Der Inhalt ist eine einzelne CTL. |
|
Der Inhalt ist ein PFX-Paket (PKCS #12). Diese Funktion überprüft nur, ob es sich bei dem Objekt um ein PKCS #12-Paket handelt. Das PKCS #12-Paket wird nicht in einen Zertifikatspeicher geladen. |
|
Der Inhalt ist ein PFX-Paket (PKCS #12) und wurde in einen Zertifikatspeicher geladen.
Windows Server 2003 und Windows XP: Dieser Wert wird nicht unterstützt. |
|
Der Inhalt ist eine PKCS #7 signierte Nachricht. |
|
Der Inhalt ist eine eingebettete PKCS #7 signierte Nachricht. |
|
Der Inhalt ist eine PKCS #7-Nachricht ohne Vorzeichen. |
|
Der Inhalt ist eine PKCS #10-Nachricht. |
|
Der Inhalt ist ein serialisiertes einzelnes Zertifikat. |
|
Der Inhalt ist eine serialisierte einzelne Zertifikatsperrliste. |
|
Der Inhalt ist eine serialisierte einzelne CTL. |
|
Der Inhalt ist ein serialisierter Speicher. |
[out] pdwFormatType
Ein Zeiger auf einen DWORD-Wert , der den tatsächlichen Formattyp des Inhalts empfängt. Wenn diese Informationen nicht benötigt werden, legen Sie diesen Parameter auf NULL fest. Der zurückgegebene Formattyp kann einer der folgenden Werte sein.
[out] phCertStore
Ein Zeiger auf einen HCERTSTORE-Wert , der ein Handle für einen Zertifikatspeicher empfängt, der alle Zertifikate, CRLs und CTLs im -Objekt enthält.
Dieser Parameter empfängt nur dann ein Zertifikatspeicherhandle, wenn der dwContentType-Parameter einen der folgenden Werte empfängt. Dieser Parameter empfängt NULL für alle anderen Inhaltstypen.
CERT_QUERY_CONTENT_CERT
CERT_QUERY_CONTENT_CRL
CERT_QUERY_CONTENT_CTL
CERT_QUERY_CONTENT_PFX_AND_LOAD
CERT_QUERY_CONTENT_PKCS7_SIGNED
CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED
CERT_QUERY_CONTENT_SERIALIZED_CERT
CERT_QUERY_CONTENT_SERIALIZED_CRL
CERT_QUERY_CONTENT_SERIALIZED_CTL
CERT_QUERY_CONTENT_SERIALIZED_STORE
Wenn Sie die Verwendung des Handles abgeschlossen haben, geben Sie es frei, indem Sie das Handle an die CertCloseStore-Funktion übergeben.
Wenn diese Informationen nicht benötigt werden, legen Sie diesen Parameter auf NULL fest.
[out] phMsg
Ein Zeiger auf einen HCRYPTMSG-Wert , der das Handle einer geöffneten Nachricht empfängt.
Dieser Parameter empfängt nur ein Nachrichtenhandle, wenn der dwContentType-Parameter einen der folgenden Werte empfängt. Dieser Parameter empfängt NULL für alle anderen Inhaltstypen.
CERT_QUERY_CONTENT_PKCS7_SIGNED
CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED
CERT_QUERY_CONTENT_PKCS7_UNSIGNED
Wenn Sie die Verwendung des Handles abgeschlossen haben, geben Sie es frei, indem Sie das Handle an die Funktion CryptMsgClose übergeben.
Wenn diese Informationen nicht benötigt werden, legen Sie diesen Parameter auf NULL fest.
[out] ppvContext
Ein Zeiger auf einen Zeiger, der zusätzliche Informationen zum Objekt empfängt.
Das Format dieser Daten hängt vom Wert ab, der vom dwContentType-Parameter empfangen wird. In der folgenden Tabelle ist das Format der Daten für den angegebenen dwContentType-Wert aufgeführt.
dwContentType-Wert | Bedeutung |
---|---|
|
Dieser Parameter empfängt einen Zeiger auf eine CERT_CONTEXT-Struktur . Wenn Sie die Verwendung der -Struktur abgeschlossen haben, geben Sie sie frei, indem Sie diesen Zeiger an die CertFreeCertificateContext-Funktion übergeben. |
|
Dieser Parameter empfängt einen Zeiger auf eine CRL_CONTEXT-Struktur . Wenn Sie die Verwendung der -Struktur abgeschlossen haben, geben Sie sie frei, indem Sie diesen Zeiger an die CertFreeCRLContext-Funktion übergeben. |
|
Dieser Parameter empfängt einen Zeiger auf eine CTL_CONTEXT-Struktur . Wenn Sie die Verwendung der -Struktur abgeschlossen haben, geben Sie sie frei, indem Sie diesen Zeiger an die CertFreeCTLContext-Funktion übergeben. |
|
Dieser Parameter empfängt einen Zeiger auf eine CERT_CONTEXT-Struktur . Wenn Sie die Verwendung der -Struktur abgeschlossen haben, geben Sie sie frei, indem Sie diesen Zeiger an die CertFreeCertificateContext-Funktion übergeben. |
|
Dieser Parameter empfängt einen Zeiger auf eine CRL_CONTEXT-Struktur . Wenn Sie die Verwendung der -Struktur abgeschlossen haben, geben Sie sie frei, indem Sie diesen Zeiger an die CertFreeCRLContext-Funktion übergeben. |
|
Dieser Parameter empfängt einen Zeiger auf eine CTL_CONTEXT-Struktur . Wenn Sie die Verwendung der -Struktur abgeschlossen haben, geben Sie sie frei, indem Sie diesen Zeiger an die CertFreeCTLContext-Funktion übergeben. |
Wenn diese Informationen nicht benötigt werden, legen Sie diesen Parameter auf NULL fest.
Rückgabewert
Wenn die Funktion erfolgreich ist, gibt die Funktion nonzero zurück.
Wenn die Funktion fehlschlägt, gibt sie null zurück. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | wincrypt.h |
Bibliothek | Crypt32.lib |
DLL | Crypt32.dll |