[New - Windows NT]
WinTrustSubjectEnumCertificates功能确定主题中捆绑的证书的类型。您可以检索主题包含的所有证书类型的列表,或者您可以确定主题是否包含指定的证书类型。
BOOL WinTrustSubjectEnumCertificates(
LPWIN_TRUST_SIP_SUBJECT 【lpSubject】, | //指向主题描述的指针 |
DWORD 【dwTypeFilter】, | //枚举类型的证书 |
LPDWORD 【lpCertificateCount】, | //接收指定类型的证书数 |
LPDWORD 【lpIndices】, | //指向接收证书类型的数组的指针 |
DWORD 【dwIndexCount】 | //数组的大小 |
); |
参数
【lpSubject】
指向WIN_TRUST_SIP_SUBJECT结构的指针,用于标识从中获取证书信息的主题。
【dwTypeFilter】
指定要列出的证书类型。此参数可以为零以列出所有类型的证书,也可以是以下值之一。
值 | 含义 |
WIN_CERT_TYPE_X509 | 证书包含X.509证书。 |
WIN_CERT_TYPE_PKCS_SIGNED_DATA | 证书包含PKCS SignedData结构。 |
WIN_CERT_TYPE_RESERVED_1 | 保留。 |
【lpCertificateCount】
指向DWORD的【lpSubject】,它接收由【lpSubject】标识的主题中指定类型的证书数量。该值表示即使【lpIndices】数组不够大以容纳它们也可以返回的数字。
【lpIndices】
指向一组DWORD值,它们接收一个WIN_CERT_TYPE_xxx值的列表,该列表指示主题中捆绑的证书的类型。您可以在WinTrustSubjectGetCertificate函数中使用这些证书类型值来检索实际证书。
【lpCertificateCount】中返回的值表示数组中返回的有效条目数。如果【dwIndexCount】小于【lpCertificateCount】中返回的值,则该数组包含垃圾,您需要再次使用更大的数组调用WinTrustSubjectEnumCertificates.
【dwIndexCount】
表示【lpIndices】数组中可以返回的条目数。
返回值
如果函数成功,则返回值为非零值。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
信任提供者调用WinTrustSubjectEnumCertificates函数来检索指定主题中的证书类型。信任提供者调用该函数的WinTrust实现。WinTrust然后调用相应的主题界面包(SIP)的WinTrustSubjectEnumCertificates实现。适当的SIP是注册以处理由【lpSubject】参数指定的主题类型的SIP。
每个主题界面包(SIP)DLL都必须实现WinTrustSubjectEnumCertificates功能。当WinTrust调用SIP的WinTrustSipInitialize初始化功能时,WinTrust将获得指向SIP的WinTrustSubjectEnumCertificates实现的指针。
LPWINTRUST_SUBJECT_ENUM_CERTIFICATES类型是指向WinTrustSubjectEnumCertificates函数的指针。
也可以看看