status method
Implementation
@override
Tuple2<SCardResult, SCardStatus> status(int hCard) {
final pdwState = calloc<DWORD>();
final pdwProtocol = calloc<DWORD>();
final pcchReaderLen = calloc<DWORD>()..value = MAX_BUFFER_SIZE;
final mszReaderName = calloc<ffi.Char>(pcchReaderLen.value);
final pcbAtrLen = calloc<DWORD>()..value = MAX_ATR_SIZE;
final pbAtr = calloc<BYTE>(pcbAtrLen.value);
try {
var response = _winscard.SCardStatus(hCard, mszReaderName, pcchReaderLen, pdwState, pdwProtocol, pbAtr, pcbAtrLen);
var result = SCardResult(response);
if( !result.isSuccess ) {
return Tuple2(result, SCardStatus("", 0, 0, []));
}
var nameString = _convertNativeString(mszReaderName);
var attributeList = _convertNativeBytes(pbAtr, pcbAtrLen.value);
return Tuple2(SCardResult(response), SCardStatus(nameString, pdwState.value, pdwProtocol.value, attributeList));
}
finally {
calloc.free(mszReaderName);
calloc.free(pcchReaderLen);
calloc.free(pdwState);
calloc.free(pdwProtocol);
calloc.free(pbAtr);
calloc.free(pcbAtrLen);
}
}