diff --git a/include/winscard.h b/include/winscard.h index 5aee1b3e548..0ce473b6bf1 100644 --- a/include/winscard.h +++ b/include/winscard.h @@ -85,6 +85,15 @@ DECL_WINELIB_TYPE_AW(LPSCARD_READERSTATE) #define SCARD_STATE_MUTE 0x00000200 #define SCARD_STATE_UNPOWERED 0x00000400 +#define SCARD_SHARE_EXCLUSIVE 1 +#define SCARD_SHARE_SHARED 2 +#define SCARD_SHARE_DIRECT 3 + +#define SCARD_LEAVE_CARD 0 +#define SCARD_RESET_CARD 1 +#define SCARD_UNPOWER_CARD 2 +#define SCARD_EJECT_CARD 3 + #ifdef __cplusplus extern "C" { #endif diff --git a/include/winsmcrd.h b/include/winsmcrd.h index 60fdd3e492c..15c427c48da 100644 --- a/include/winsmcrd.h +++ b/include/winsmcrd.h @@ -27,6 +27,32 @@ #define SCARD_PROTOCOL_DEFAULT 0x80000000 #define SCARD_PROTOCOL_Tx (SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1) +#define SCARD_UNKNOWN 0 +#define SCARD_ABSENT 1 +#define SCARD_PRESENT 2 +#define SCARD_SWALLOWED 3 +#define SCARD_POWERED 4 +#define SCARD_NEGOTIABLE 5 +#define SCARD_SPECIFIC 6 + +#define SCARD_ATTR_VALUE(class, tag) ((((ULONG)(class)) << 16) | ((ULONG)(tag))) + +#define SCARD_CLASS_VENDOR_INFO 1 +#define SCARD_CLASS_COMMUNICATIONS 2 +#define SCARD_CLASS_PROTOCOL 3 +#define SCARD_CLASS_POWER_MGMT 4 +#define SCARD_CLASS_SECURITY 5 +#define SCARD_CLASS_MECHANICAL 6 +#define SCARD_CLASS_VENDOR_DEFINED 7 +#define SCARD_CLASS_IFD_PROTOCOL 8 +#define SCARD_CLASS_ICC_STATE 9 +#define SCARD_CLASS_PERF 0x7ffe +#define SCARD_CLASS_SYSTEM 0x7fff + +#define SCARD_ATTR_VENDOR_NAME SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0100) + +#define SCARD_CTL_CODE(code) CTL_CODE(FILE_DEVICE_SMARTCARD, (code), METHOD_BUFFERED, FILE_ANY_ACCESS) + typedef struct _SCARD_IO_REQUEST { DWORD dwProtocol;