ICEnroll::enumProviders 메서드(xenroll.h)
[이 메서드는 Windows Server 2008 및 Windows Vista를 기준으로 더 이상 사용할 수 없습니다.]
enumProviders 메서드는 ProviderType 속성에 지정된 사용 가능한 CSP(암호화 서비스 공급자)의 이름을 검색합니다. 이 메서드는 ICEnroll 인터페이스에서 처음 정의되었습니다.
구문
HRESULT enumProviders(
[in] LONG dwIndex,
[in] LONG dwFlags,
[out] BSTR *pbstrProvName
);
매개 변수
[in] dwIndex
이름이 검색될 CSP의 서수 위치를 지정합니다. 첫 번째 CSP에 대해 0을 지정합니다.
[in] dwFlags
CryptEnumProviders 함수로 전달되는 플래그를 지정합니다. 이 매개 변수는 현재 사용되지 않습니다. 는 0을 지정합니다.
[out] pbstrProvName
지정된 속성 형식의 CSP 이름을 받는 BSTR 변수에 대한 포인터입니다. BSTR 사용을 마쳤으면 SysFreeString 함수를 호출하여 해제합니다.
반환 값
C++
반환 값은 HRESULT입니다. S_OK 값은 성공을 나타냅니다. providerType 속성으로 표시된 속성 형식의 CSP가 더 이상 없으면 ERROR_NO_MORE_ITEMS 값이 반환됩니다.VB
반환 값은 CSP의 이름을 포함하는 String 변수입니다. 오류가 발생하거나 더 이상 항목이 없는 경우 예외가 발생합니다.설명
ProviderType 속성 값이 설정되지 않은 경우 레지스트리에 설정된 ProviderType의 기본값(일반적으로 PROV_RSA_FULL)이 사용됩니다.
enumProviders 메서드는 CryptEnumProviders 함수를 호출합니다.
예제
BSTR bstrProvName = NULL;
DWORD nProv;
int j;
HRESULT hr;
// array of CSP provider types (see Wincrypt.h)
DWORD nProvType[] = { PROV_RSA_FULL,
PROV_RSA_SIG,
// list shortened for brevity
//...
PROV_STT_ISS };
// Loop, for each Prov Type.
for (j = 0; j < (sizeof(nProvType)/sizeof(DWORD)); j++)
{
nProv = 0;
// pEnroll is previously instantiated ICEnroll interface pointer
hr = pEnroll->put_ProviderType( nProvType[j] );
if ( FAILED(hr))
{
printf("Failed put_ProviderType - %x\n", hr);
goto error;
}
// Enumerate the CSPs of this type.
while ( S_OK == ( hr = pEnroll->enumProviders(nProv,
0,
&bstrProvName)))
{
printf("Provider %ws (type %d )\n", bstrProvName,
nProvType[j] );
nProv++;
if ( bstrProvName )
{
SysFreeString( bstrProvName );
bstrProvName = NULL;
}
}
// Print message if provider type does not have any CSPs.
if ( 0 == nProv )
printf("There were no CSPs of type %d\n", dwType );
}
error:
// Clean up resources, and so on.
if ( bstrProvName )
SysFreeString( bstrProvName );
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | xenroll.h |
라이브러리 | Uuid.lib |
DLL | Xenroll.dll |