ICertAdmin::GetCRL 메서드(certadm.h)
GetCRL 메서드는 CA(인증서 서비스 인증 기관)에 대한 현재 CRL(인증서 해지 목록)을 검색합니다. 이 메서드는 ICertAdmin 인터페이스에서 처음 정의되었습니다.
구문
HRESULT GetCRL(
[in] const BSTR strConfig,
[in] LONG Flags,
[out] BSTR *pstrCRL
);
매개 변수
[in] strConfig
검색하려는 CRL의 CA에 대한 유효한 구성 문자열을 나타냅니다. 이 문자열은 COMPUTERNAME\CANAME 형식입니다. 여기서 COMPUTERNAME은 인증서 서비스 서버의 네트워크 이름이고 CANAME는 인증서 서비스 설정 중에 입력한 대로 CA의 일반 이름입니다. 구성 문자열 이름에 대한 자세한 내용은 ICertConfig를 참조하세요.
[in] Flags
반환된 CRL의 형식을 지정합니다. 이 매개 변수는 다음 플래그 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
시작/끝의 BASE64 형식입니다. |
|
시작/끝이 없는 BASE64 형식입니다. |
|
이진 형식입니다. |
[out] pstrCRL
CRL을 수신하는 BSTR 에 대한 포인터입니다.
이 메서드를 사용하는 경우 BSTR 형식의 변수를 만들고, 변수를 NULL로 설정하고, pbstrCRL 매개 변수에 이 변수의 주소를 전달합니다. BSTR 변수 사용을 마쳤으면 SysFreeString 함수를 호출하여 해제합니다.
반환 값
함수가 성공하면 함수는 S_OK 반환합니다.
함수가 실패하면 오류를 나타내는 HRESULT 값을 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다. 일반적인 오류 코드 목록은 일반 HRESULT 값을 참조하세요.
반환 코드 | 설명 |
---|---|
|
strConfig 매개 변수는 NULL일 수 없거나 CRL을 찾을 수 없습니다. |
설명
관리 작업은 DCOM을 사용합니다. 이전 버전의 Certadm.h에 정의된 대로 이 인터페이스 메서드를 호출하는 코드는 클라이언트와 서버가 모두 동일한 Windows 운영 체제를 실행하는 한 Windows 기반 서버에서 실행됩니다.
예제
다음 예제에서는 필요한 변수를 선언하고, COM을 초기화하고, CertAdmin 클래스의 instance 만듭니다. 그런 다음 GetCRL 을 호출하고 성공 또는 실패를 화면에 출력합니다. 마지막으로 리소스를 해제합니다.
ICertAdmin * pCertAdmin = NULL; // pointer to interface object
BSTR bstrCA = NULL; // variable for machine\CAName
BSTR bstrCRL = NULL; // variable to contain
// the retrieved CRL
HRESULT hr;
// Initialize COM.
hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
if (FAILED(hr))
{
printf("Failed CoInitializeEx [%x]\n", hr);
goto error;
}
// Create the CertAdmin object
// and get a pointer to its ICertAdmin interface.
hr = CoCreateInstance( CLSID_CCertAdmin,
NULL,
CLSCTX_INPROC_SERVER,
IID_ICertAdmin,
(void **)&pCertAdmin);
if (FAILED(hr))
{
printf("Failed CoCreateInstance pCertAdmin [%x]\n", hr);
goto error;
}
// Note the use of two backslashes (\\)
// in C++ to produce one backslash (\).
bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (FAILED(hr))
{
printf("Failed to allocate memory for bstrCA\n");
goto error;
}
// Retrieve the CRL.
hr = pCertAdmin->GetCRL( bstrCA, CR_OUT_BINARY, &bstrCRL );
if (FAILED(hr))
{
printf("Failed GetCRL [%x]\n", hr);
goto error;
}
else
printf("CRL retrieved successfully\n");
// Use the CRL as needed.
// Done processing.
error:
// Free BSTR values.
if (NULL != bstrCA)
SysFreeString(bstrCA);
if (NULL != bstrCRL)
SysFreeString(bstrCRL);
// Clean up object resources.
if (NULL != pCertAdmin)
pCertAdmin->Release();
// Free COM resources.
CoUninitialize();
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | 지원되는 버전 없음 |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | certadm.h(Certsrv.h 포함) |
라이브러리 | Certidl.lib |
DLL | Certadm.dll |
추가 정보
ICertAdmin2