Редагувати

Поділитися через


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
S_OK
Operation completed successfully.
E_INVALIDARG
The ppAtr parameter is not valid.
E_POINTER
A bad pointer was passed in ppAtr.
E_OUTOFMEMORY
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
Scardmgr.h
Type library
Scardmgr.tlb
DLL
Scardssp.dll
IID
IID_ISCard is defined as 1461AAC3-6810-11D0-918F-00AA00C18068

See also

get_CardHandle

get_Context

get_Protocol

get_Status

ISCard

IByteBuffer::Read