하드웨어/rfid_nfc_smartcard

SCardListReadersA 함수(winscard.h)

구차니 2025. 3. 17. 12:27

특이하다면 특이한 함수인데

mszReaders 변수의 길이를 포인터인 pcchReaders에 넘겨주어야지 정상적으로 작동한다.

LONG SCardListReadersA(
  [in]           SCARDCONTEXT hContext,
  [in, optional] LPCSTR       mszGroups,
  [out]          LPSTR        mszReaders,
  [in, out]      LPDWORD      pcchReaders
);

 

그래서 조금 편하게 쓰라고 SCARD_AUTOALLOCATE (-1)을 해주면 알아서 할당해서 던져주는 듯.

LPTSTR          pmszReaders = NULL;
LPTSTR          pReader;
LONG            lReturn, lReturn2;
DWORD           cch = SCARD_AUTOALLOCATE;

// Retrieve the list the readers.
// hSC was set by a previous call to SCardEstablishContext.
lReturn = SCardListReaders(hSC,
                           NULL,
                           (LPTSTR)&pmszReaders,
                           &cch );

[링크 : https://learn.microsoft.com/ko-kr/windows/win32/api/winscard/nf-winscard-scardlistreadersa]