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
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.
Last updated on Tuesday, July 13, 2004