다음을 통해 공유


WinBioEnumServiceProviders 함수(winbio.h)

설치된 생체 인식 서비스 공급자에 대한 정보를 검색합니다. Windows 10 빌드 1607부터 이 함수를 모바일 이미지와 함께 사용할 수 있습니다.

구문

HRESULT WinBioEnumServiceProviders(
  [in]  WINBIO_BIOMETRIC_TYPE Factor,
  [out] WINBIO_BSP_SCHEMA     **BspSchemaArray,
  [out] SIZE_T                *BspCount
);

매개 변수

[in] Factor

열거할 생체 인식 단위 유형을 지정하는 WINBIO_BIOMETRIC_TYPE 플래그의 비트 마스크입니다. 현재 는 WINBIO_TYPE_FINGERPRINT 만 지원됩니다.

[out] BspSchemaArray

사용 가능한 각 서비스 공급자에 대한 정보를 포함하는 WINBIO_BSP_SCHEMA 구조 배열에 대한 포인터를 수신하는 변수의 주소입니다. 함수가 성공하지 못하면 포인터가 NULL로 설정됩니다. 함수가 성공하면 WinBioFree 에 포인터를 전달하여 배열에 대해 내부적으로 할당된 메모리를 해제해야 합니다.

[out] BspCount

BspSchemaArray 매개 변수가 가리키는 구조체 수를 지정하는 값에 대한 포인터입니다.

반환 값

함수가 성공하면 S_OK를 반환합니다. 함수가 실패하면 오류를 나타내는 HRESULT 값을 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다. 일반적인 오류 코드 목록은 일반적인 HRESULT 값을 참조하세요.

반환 코드 설명
E_INVALIDARG
Factor 매개 변수에 포함된 비트 마스크에는 하나 이상의 잘못된 형식 비트가 포함되어 있습니다.
E_OUTOFMEMORY
요청을 완료할 메모리가 부족했습니다.
E_POINTER
BspSchemaArrayBspCount 매개 변수는 NULL일 수 없습니다.

설명

현재 Factor 매개 변수에서는 WINBIO_TYPE_FINGERPRINT만 지원됩니다.

BspSchemaArray 매개 변수로 반환된 구조체 사용을 완료한 후에는 WinBioFree를 호출하여 배열에 대해 내부적으로 할당된 메모리를 해제해야 합니다.

Factor 비트 마스크의 모든 요소 비트가 지원되지 않는 생체 인식 형식을 참조하는 경우 함수는 S_OK 반환하지만 BspSchemaArray 매개 변수가 가리키는 값은 NULL이고 BspCount 매개 변수에는 0이 포함됩니다. 지원되지 않는 생체 인식 요인에 대해 문의하는 것은 오류가 아니지만 쿼리 결과는 빈 집합입니다.

예제

다음 코드 예제에서는 WinBioEnumServiceProviders 를 호출하여 설치된 서비스 공급자를 열거합니다. 이 예제에는 공급자 ID를 표시하는 함수 DisplayGuid도 포함되어 있습니다. Winbio.lib 정적 라이브러리에 연결하고 다음 헤더 파일을 포함합니다.

  • Windows.h
  • Stdio.h
  • Conio.h
  • Winbio.h
HRESULT EnumSvcProviders( )
{
    // Declare variables.
    HRESULT hr = S_OK;
    PWINBIO_BSP_SCHEMA bspSchemaArray = NULL;
    SIZE_T bspCount = 0;
    SIZE_T index = 0;

    // Enumerate the service providers.
    hr = WinBioEnumServiceProviders( 
            WINBIO_TYPE_FINGERPRINT,    // Provider to enumerate
            &bspSchemaArray,            // Provider schema array
            &bspCount );                // Number of schemas returned
    if (FAILED(hr))
    {
        wprintf_s(L"\n WinBioEnumServiceProviders failed. hr = 0x%x\n", hr);
        goto e_Exit;
    }

    // Display the schema information.
    wprintf_s(L"\nService providers: \n");
    for (index = 0; index < bspCount; ++index)
    {
        wprintf_s(L"\n[%d]: \tBiometric factor: 0x%08x\n", 
                 index, 
                 bspSchemaArray[index].BiometricFactor );
        
        wprintf_s(L"\tBspId: ");
        DisplayGuid(&bspSchemaArray[index].BspId);
        wprintf_s(L"\n");

        wprintf_s(L"\tDescription: %ws\n", 
                 bspSchemaArray[index].Description);
        wprintf_s(L"\tVendor: %ws\n", 
                 bspSchemaArray[index].Vendor );
        wprintf_s(L"\tVersion: %d.%d\n", 
                 bspSchemaArray[index].Version.MajorVersion, 
                 bspSchemaArray[index].Version.MinorVersion);

        wprintf_s(L"\n");
    } 

e_Exit:
    if (bspSchemaArray != NULL)
    {
        WinBioFree(bspSchemaArray);
        bspSchemaArray = NULL;
    }

    wprintf_s(L"\nPress any key to exit...");
    _getch();

    return hr;
}

//------------------------------------------------------------------------
// The following function displays a GUID to the console window.
//
VOID DisplayGuid( __in PWINBIO_UUID Guid )
{
    wprintf_s(
        L"{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
        Guid->Data1,
        Guid->Data2,
        Guid->Data3,
        Guid->Data4[0],
        Guid->Data4[1],
        Guid->Data4[2],
        Guid->Data4[3],
        Guid->Data4[4],
        Guid->Data4[5],
        Guid->Data4[6],
        Guid->Data4[7]
        );
}


요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winbio.h(Winbio.h 포함)
라이브러리 Winbio.lib
DLL Winbio.dll

추가 정보

WinBioEnumBiometricUnits

WinBioEnumDatabases

WinBioEnumEnrollments