다음을 통해 공유


SCardListReaderGroupsA 함수(winscard.h)

SCardListReaderGroups 함수는 이전에 시스템에 도입된 판독기 그룹 목록을 제공합니다.

통사론

LONG SCardListReaderGroupsA(
  [in]      SCARDCONTEXT hContext,
  [out]     LPSTR        mszGroups,
  [in, out] LPDWORD      pcchGroups
);

매개 변수

[in] hContext

쿼리에 대한 리소스 관리자 컨텍스트 식별하는 핸들입니다. 리소스 관리자 컨텍스트는 SCardEstablishContext대한 이전 호출을 통해 설정할 수 있습니다.

이 매개 변수가 NULL설정된 경우 판독기 그룹 검색은 컨텍스트로 제한되지 않습니다.

[out] mszGroups

시스템에 정의되고 현재 터미널현재 사용자가 사용할 수 있는 판독기 그룹을 나열하는 다중 문자열입니다. 이 값이 NULL경우 SCardListReaderGroups pcchGroups제공된 버퍼 길이를 무시하고, 이 매개 변수가 pcchGroups 경우 반환된 버퍼의 길이를 쓰고 성공 코드를 반환합니다.

의미
SCARD_ALL_READERS
TEXT("SCard$AllReaders\000")
판독기를 나열할 때 그룹 이름이 제공되지 않을 때 사용되는 그룹입니다. 판독기의 그룹 또는 그룹에 관계없이 모든 판독기 목록을 반환합니다.
SCARD_DEFAULT_READERS
TEXT("SCard$DefaultReaders\000")
시스템에 도입될 때 모든 판독기를 추가하는 기본 그룹입니다.
SCARD_LOCAL_READERS
TEXT("SCard$LocalReaders\000")
사용되지 않는 레거시 값입니다. 판독기 그룹 API를 사용하여 수정할 수 없는 내부적으로 관리되는 그룹입니다. 열거형에만 사용됩니다.
SCARD_SYSTEM_READERS
TEXT("SCard$SystemReaders\000")
사용되지 않는 레거시 값입니다. 판독기 그룹 API를 사용하여 수정할 수 없는 내부적으로 관리되는 그룹입니다. 열거형에만 사용됩니다.

[in, out] pcchGroups

mszGroups의 길이는 버퍼를 문자로 후행 null 문자를 포함하여 다중 문자열 구조의 실제 길이를 받습니다. 버퍼 길이가 SCARD_AUTOALLOCATE 지정된 경우 mszGroups 바이트 포인터에 대한 포인터로 변환되고 다중 문자열 구조가 포함된 메모리 블록의 주소를 받습니다. 이 메모리 블록은 SCardFreeMemory할당 취소해야 합니다.

반환 값

이 함수는 성공 여부에 따라 다른 값을 반환합니다.

반환 코드 묘사
성공
SCARD_S_SUCCESS.
실패
오류 코드입니다. 자세한 내용은 스마트 카드 반환 값참조하세요.

발언

그룹은 하나 이상의 판독기포함하는 경우에만 반환됩니다. 여기에는 SCard$DefaultReaders그룹이 포함됩니다. SCard$AllReaders 그룹은 암시적으로만 존재하기 때문에 반환할 수 없습니다.

SCardListReaderGroups 함수는 데이터베이스 쿼리 함수입니다. 다른 데이터베이스 쿼리 함수에 대한 자세한 내용은스마트 카드 데이터베이스 쿼리 함수 참조하세요.

예제

다음 예제에서는 판독기 그룹을 나열합니다.

LPTSTR          pmszReaderGroups = NULL;
LPTSTR          pReaderGroup;
LONG            lReturn;
DWORD           cch = SCARD_AUTOALLOCATE;
    
// Retrieve the list the reader groups.
// hSC was set by a previous call to SCardEstablishContext.
lReturn = SCardListReaderGroups(hSC,
                                (LPTSTR)&pmszReaderGroups,
                                &cch );
if ( SCARD_S_SUCCESS != lReturn )
    printf("Failed SCardListReaderGroups\n");
else
{
    // Do something with the multi string of reader groups.
    // Output the values.
    // A double-null terminates the list of values.
    pReaderGroup = pmszReaderGroups;
    while ( '\0' != *pReaderGroup )
    {
        // Display the value.
        printf("%S\n", pReaderGroup );
        // Advance to the next value.
        pReaderGroup = pReaderGroup + wcslen((wchar_t *) pReaderGroup) + 1;
    }

    // Remember to free pmszReaderGroups by a call to SCardFreeMemory.
    // ...
}

메모

winscard.h 헤더는 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 SCardListReaderGroups를 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한 규칙을 참조하세요.

요구 사항

요구
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winscard.h
라이브러리 Winscard.lib
DLL Winscard.dll

참고 항목

SCardEstablishContext

SCardFreeMemory

SCardGetProviderId

SCardListCards

SCardListInterfaces

SCardListReaders