Previous Next

SMARTCARD_EXTENSION

The SMARTCARD_EXTENSION structure is used by both the reader driver and the smart card driver library to access all other smart card data structures. This structure is passed to all callback functions.

typedef struct _SMARTCARD_EXTENSION {
  ULONG  Version;
  VENDOR_ATTR  VendorAttr;
  NTSTATUS (*ReaderFunction[16])(PSMARTCARD_EXTENSION);
  SCARD_CARD_CAPABILITIES  CardCapabilities;
  ULONG LastError;
  struct {
    PULONG  Information;
    PUCHAR  RequestBuffer;
    ULONG  RequestBufferLength;
    PUCHAR  ReplyBuffer;
    ULONG  ReplyBufferLength;
  } IoRequest;
  ULONG  MajorIoControlCode;
  ULONG  MinorIoControlCode;
  POS_DEP_DATA  OsData;
  SCARD_READER_CAPABILITIES  ReaderCapabilities;
  PREADER_EXTENSION  ReaderExtension;
  SMARTCARD_REPLY  SmartcardReply;
  SMARTCARD_REQUEST  SmartcardRequest;
  T0_DATA  T0;
  T1_DATA  T1;
  ULONG  Reserved[25];
} SMARTCARD_EXTENSION, *PSMARTCARD_EXTENSION;
 

Members

Version
Indicates the version of this structure.
VendorAttr
Contains information that identifies the reader driver, such as the vendor name, unit number, and serial number.
ReaderFunction
Pointer to an array of callback reader functions.
CardCapabilities
Contains capabilities of the current inserted card.
LastError
Stores the last error of an overlapped operation. (Used only for Windows 9x VxDs.)
IoRequest.Information
Contains the number of bytes returned.
IoRequest.RequestBuffer
Pointer to the data of the user's I/O request to be sent to the card.
IoRequest.RequestBufferLength
Indicates the number of bytes to be sent to the card.
IoRequest.ReplyBuffer
Pointer to the buffer holding the data returned by the I/O request.
IoRequest.ReplyBufferLength
Indicates the number of bytes of the data returned by the I/O request.
MajorIoControlCode
Contains the major I/O control code.
MinorIoControlCode
Contains the minor I/O control code.
OsData
Contains information that is specific to the operating system and the driver type.
ReaderCapabilities
Contains the capabilities of the keyboard reader.
ReadExtension
Contains reader-specific data.
SmartcardReply
Contains data coming from the reader.
SmartcardRequest
Contains the current command and the data that will be sent to the smart card.
T0
Contains the data for use with the T = 0 protocol.
T1
Contains the data for use with the T = 1 protocol.
Reserved
Reserved for system use.

Headers

Declared in scmlib.h. Include scmlib.h.

See Also

SCARD_CARD_CAPABILITIES, SCARD_READER_CAPABILITIES, VENDOR_ATTR