ISCard::get_Atr method
[The get_Atr method is available for use in the operating systems specified in the Requirements section. The Smart Card Modules provide similar functionality.]
The get_Atr method retrieves an ATR string of the smart card.
Syntax
HRESULT get_Atr(
[out] LPBYTEBUFFER *ppAtr
);
Parameters
-
ppAtr [out]
-
Pointer to a byte buffer in the form of an IStream that will contain the ATR string on return.
Return value
The method returns one of the following possible values.
Return code | Description |
---|---|
|
Operation completed successfully. |
|
The ppAtr parameter is not valid. |
|
A bad pointer was passed in ppAtr. |
|
Memory to satisfy the request is unavailable. |
Remarks
In addition to the COM error codes listed above, this interface may return a smart card error code if a smart card function was called to complete the request. For more information, see Smart Card Return Values.
Examples
The following example shows retrieving the ATR string from the smart card.
// Retrieve the ATR.
// pISCard is a pointer to a previously instantiated ISCard.
// pAtr is a pointer to a previously instantiated IByteBuffer.
hr = pISCard->get_Atr(&pAtr);
if (FAILED(hr))
{
printf("Failed get_Atr\n");
// Take other error handling action.
}
// Success, you can now use IByteBuffer::Read to access ATR bytes.
BYTE byAtr[32];
long lBytesRead, i;
// Read the ATR string into a byte array.
hr = pAtr->Read(byAtr, 32, &lBytesRead);
// Use the ATR value. (This example merely displays the bytes.)
for ( i = 0; i < lBytesRead; i++)
printf("%c", *(byAtr + i));
printf("\n");
Requirements
Requirement | Value |
---|---|
Minimum supported client |
Windows XP [desktop apps only] |
Minimum supported server |
Windows Server 2003 [desktop apps only] |
End of client support |
Windows XP |
End of server support |
Windows Server 2003 |
Header |
|
Type library |
|
DLL |
|
IID |
IID_ISCard is defined as 1461AAC3-6810-11D0-918F-00AA00C18068 |
See also