Microsoft Windows CE 3.0  

SMARTCARD_EXTENSION

Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

The SMARTCARD_EXTENSIONstructure is used by the driver to access all the other smart card data structures, and additional information. 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
The version of this structure.
VendorAttr
Mandatory vendor attribute data.
ReaderFunction
An array of smart card reader callback functions.
CardCapabilities
The capabilities of the currently inserted card.
LastError
The last error of an overlapped operation.
IoRequest
A structure containing the data of a user's I/O request.
MajorIoControlCode
The major I/O Control Code for the current request.
MinorIoControlCode
The minior I/O Control Code for the current request.
OsData
Pointer to a structure containing information dependent on the driver type. It is managed by the smart-card driver library.
typedef struct _OS_DEP_DATA {
struct _SMARTCARD_EXTENSION *
pSmartCardExtension; 
CRITICAL_SECTION
CritSect; // used to control entry into driver 
HANDLE
hChangeEvent; // signaled on card-insertion event 
HANDLE
hCancelEvent; // signaled on CANCEL_BLOCKING ioctls 
} OS_DEP_DATA, *POS_DEP_DATA;

This structure will be allocated by a call to SmartcardInitialize. You cannot use this structure to store driver-dependent information. For card-tracking requests, NotificationIrpis set to the requesting Irp. See RDF_CARD_TRACKINGfor more information about card tracking.

ReaderCapabilities
Capabilities of the keyboard reader.
ReaderExtension
A pointer to reader specific data.
SmartcardReply
A buffer where the card reader stores all replies from the smart card.
SmartcardRequest
The current command to send to the smart card.
T0
Data for T=0.
T1
Data for T=1.
Reserved
A buffer of 25 ULONG values, reserved for future use. Drivers should not use this space.

 Last updated on Tuesday, July 13, 2004

© 2004 Microsoft Corporation. All rights reserved.