OPENCARD_SEARCH_CRITERIAA 구조체(winscard.h)
OPENCARD_SEARCH_CRITERIA 구조는 호출자가 설정한 요구 사항을 충족하는 카드를 인식하기 위해 SCardUIDlgSelectCard 함수에서 사용됩니다. 그러나 이 구조를 사용하지 않고 SCardUIDlgSelectCard 를 호출할 수 있습니다.
구문
typedef struct {
DWORD dwStructSize;
LPSTR lpstrGroupNames;
DWORD nMaxGroupNames;
LPCGUID rgguidInterfaces;
DWORD cguidInterfaces;
LPSTR lpstrCardNames;
DWORD nMaxCardNames;
LPOCNCHKPROC lpfnCheck;
LPOCNCONNPROCA lpfnConnect;
LPOCNDSCPROC lpfnDisconnect;
LPVOID pvUserData;
DWORD dwShareMode;
DWORD dwPreferredProtocols;
} OPENCARD_SEARCH_CRITERIAA, *POPENCARD_SEARCH_CRITERIAA, *LPOPENCARD_SEARCH_CRITERIAA;
멤버
dwStructSize
구조체의 길이(바이트)입니다. NULL이 아니어야 합니다.
lpstrGroupNames
null로 종료된 그룹 이름 문자열을 포함하는 버퍼에 대한 포인터입니다. 버퍼의 마지막 문자열은 두 개의 null 문자로 종료되어야 합니다. 각 문자열은 검색에 포함할 카드 그룹의 이름입니다. lpstrGroupNames가 NULL이면 기본 그룹(Scard$DefaultReaders)이 검색됩니다.
nMaxGroupNames
lpstrGroupNames 문자열의 최대 바이트 수(ANSI 버전) 또는 문자(유니코드 버전)입니다.
rgguidInterfaces
다음에 사용하도록 예약됩니다. 필요한 인터페이스를 식별하는 GUID 배열입니다. 이 멤버를 NULL로 설정합니다.
cguidInterfaces
다음에 사용하도록 예약됩니다. rgguidInterfaces 배열의 인터페이스 수입니다. 이 멤버를 NULL로 설정합니다.
lpstrCardNames
null로 끝나는 카드 이름 문자열이 포함된 버퍼에 대한 포인터입니다. 버퍼의 마지막 문자열은 두 개의 null 문자로 종료되어야 합니다. 각 문자열은 배치할 카드 이름입니다.
nMaxCardNames
lpstrGroupNames 문자열의 최대 바이트 수(ANSI 버전) 또는 문자(유니코드 버전)입니다.
lpfnCheck
호출자의 카드 확인 루틴에 대한 포인터입니다. 특별한 카드 확인이 필요하지 않은 경우 이 포인터는 NULL입니다. 확인 루틴에서 카드 거부되면 FALSE가 반환되고 카드 연결이 끊어집니다. 확인 루틴에서 카드 수락되면 TRUE가 반환됩니다.
검사 루틴의 프로토타입은 다음과 같습니다.
Boolean Check(
hSCardContext, // the card context passed in the parameter block
hCard, // card handle
pvUserData // pointer to user data passed in the parameter block
);
lpfnConnect
호출자의 카드 연결 루틴에 대한 포인터입니다. 호출자가 카드 연결하기 위해 추가 처리를 수행해야 하는 경우 이 함수 포인터는 사용자의 connect 함수로 설정됩니다. connect 함수가 성공하면 카드 연결되고 초기화되고 카드 핸들이 반환됩니다.
연결 루틴의 프로토타입은 다음과 같습니다.
Connect(
hSCardContext, // the card context passed in the parameter block
szReader, // the name of the reader
mszCards, // multiple string that contains
// the possible card names in the reader
pvUserData // pointer to user data passed in parameter block
);
lpfnDisconnect
호출자의 카드 연결 끊기 루틴에 대한 포인터입니다.
연결 끊기 루틴의 프로토타입은 다음과 같습니다.
Disconnect(
hSCardContext, // the card context passed in the parameter block
hCard, // card handle
pvUserData // pointer to user data passed in the parameter block
);
pvUserData
사용자 데이터에 대한 Void 포인터입니다. 이 포인터는 연결, 확인 및 연결 끊기 루틴의 호출자에게 다시 전달됩니다.
dwShareMode
lpfnConnect가 NULL이 아니면 dwShareMode 및 dwPreferredProtocols 멤버가 무시됩니다. lpfnConnect가 NULL이고 dwShareMode가 0이 아닌 경우 dwShareMode 및 dwPreferredProtocols를 매개 변수로 사용하는 SCardConnect에 대한 내부 호출이 이루어집니다.
dwPreferredProtocols
dwShareMode에 설명된 대로 내부 연결에 사용됩니다.
설명
참고
winscard.h 헤더는 OPENCARD_SEARCH_CRITERIA 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
머리글 | winscard.h |