[1/2] winscard: Adding the missing SCARD_E_XXX and SCARD_W_XXX error codes.

Francois Gouget fgouget at codeweavers.com
Tue May 15 06:48:29 CDT 2007


Adding scarderr.h with the same definitions.
---

Resending because the previous patch was missing the corresponding 
include/Makefile.in change.


I believe the winscard patches were stuck because of header issues. So I 
have redone them from the MSDN and following as closely as I could 
existing Wine code. Hopefully this will unblock the rest of the winscard 
patches.

This first part just adds the winscard error codes as this was already 
partially present in the Wine headers and is independent from the rest 
of winscard API. I duplicated the codes in winerror.h and scarderr.h as 
recommended by Alexandre (strictly respects the PSDK's header 
dependencies). As noted, if you included winerror.h, then the '#ifndef 
SCARD_S_SUCCESS' in scarderr.h (also present in the PSDK) ensures that 
none of its (slightly incompatible) definitions will be used. In other 
words scarderr.h is quite useless, except in very specific 
circumstances (e.h. direct inclusion in rc files).


 include/Makefile.in |    1 +
 include/scarderr.h  |   97 +++++++++++++++++++++++++++++++++++++++++++++++++++
 include/winerror.h  |   59 ++++++++++++++++++++++++++++++-
 3 files changed, 156 insertions(+), 1 deletions(-)

diff --git a/include/Makefile.in b/include/Makefile.in
index 2577872..d218856 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -293,6 +293,7 @@ SRCDIR_INCLUDES = \
 	rpcndr.h \
 	rpcnterr.h \
 	rpcproxy.h \
+	scarderr.h \
 	schannel.h \
 	schemadef.h \
 	schnlsp.h \
diff --git a/include/scarderr.h b/include/scarderr.h
new file mode 100644
index 0000000..74a4515
--- /dev/null
+++ b/include/scarderr.h
@@ -0,0 +1,97 @@
+/*
+ * Winscard definitions
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+/* Note that if you included winerror.h directly or indirectly,
+ * none of these definitions will be used!
+ */
+#ifndef SCARD_S_SUCCESS
+
+
+#define FACILITY_SYSTEM                       0
+#define FACILITY_SCARD                       16
+
+#define STATUS_SEVERITY_INFORMATIONAL    ((NTSTATUS) 0x00000001)
+#define STATUS_SEVERITY_WARNING          ((NTSTATUS) 0x00000002)
+#define STATUS_SEVERITY_ERROR            ((NTSTATUS) 0x00000003)
+
+#define SCARD_S_SUCCESS                                    NO_ERROR
+#define SCARD_F_INTERNAL_ERROR                             ((DWORD)0x80100001L)
+#define SCARD_E_CANCELLED                                  ((DWORD)0x80100002L)
+#define SCARD_E_INVALID_HANDLE                             ((DWORD)0x80100003L)
+#define SCARD_E_INVALID_PARAMETER                          ((DWORD)0x80100004L)
+#define SCARD_E_INVALID_TARGET                             ((DWORD)0x80100005L)
+#define SCARD_E_NO_MEMORY                                  ((DWORD)0x80100006L)
+#define SCARD_F_WAITED_TOO_LONG                            ((DWORD)0x80100007L)
+#define SCARD_E_INSUFFICIENT_BUFFER                        ((DWORD)0x80100008L)
+#define SCARD_E_UNKNOWN_READER                             ((DWORD)0x80100009L)
+#define SCARD_E_TIMEOUT                                    ((DWORD)0x8010000AL)
+#define SCARD_E_SHARING_VIOLATION                          ((DWORD)0x8010000BL)
+#define SCARD_E_NO_SMARTCARD                               ((DWORD)0x8010000CL)
+#define SCARD_E_UNKNOWN_CARD                               ((DWORD)0x8010000DL)
+#define SCARD_E_CANT_DISPOSE                               ((DWORD)0x8010000EL)
+#define SCARD_E_PROTO_MISMATCH                             ((DWORD)0x8010000FL)
+#define SCARD_E_NOT_READY                                  ((DWORD)0x80100010L)
+#define SCARD_E_INVALID_VALUE                              ((DWORD)0x80100011L)
+#define SCARD_E_SYSTEM_CANCELLED                           ((DWORD)0x80100012L)
+#define SCARD_F_COMM_ERROR                                 ((DWORD)0x80100013L)
+#define SCARD_F_UNKNOWN_ERROR                              ((DWORD)0x80100014L)
+#define SCARD_E_INVALID_ATR                                ((DWORD)0x80100015L)
+#define SCARD_E_NOT_TRANSACTED                             ((DWORD)0x80100016L)
+#define SCARD_E_READER_UNAVAILABLE                         ((DWORD)0x80100017L)
+#define SCARD_P_SHUTDOWN                                   ((DWORD)0x80100018L)
+#define SCARD_E_PCI_TOO_SMALL                              ((DWORD)0x80100019L)
+#define SCARD_E_READER_UNSUPPORTED                         ((DWORD)0x8010001AL)
+#define SCARD_E_DUPLICATE_READER                           ((DWORD)0x8010001BL)
+#define SCARD_E_CARD_UNSUPPORTED                           ((DWORD)0x8010001CL)
+#define SCARD_E_NO_SERVICE                                 ((DWORD)0x8010001DL)
+#define SCARD_E_SERVICE_STOPPED                            ((DWORD)0x8010001EL)
+#define SCARD_E_UNEXPECTED                                 ((DWORD)0x8010001FL)
+#define SCARD_E_ICC_INSTALLATION                           ((DWORD)0x80100020L)
+#define SCARD_E_ICC_CREATEORDER                            ((DWORD)0x80100021L)
+#define SCARD_E_UNSUPPORTED_FEATURE                        ((DWORD)0x80100022L)
+#define SCARD_E_DIR_NOT_FOUND                              ((DWORD)0x80100023L)
+#define SCARD_E_FILE_NOT_FOUND                             ((DWORD)0x80100024L)
+#define SCARD_E_NO_DIR                                     ((DWORD)0x80100025L)
+#define SCARD_E_NO_FILE                                    ((DWORD)0x80100026L)
+#define SCARD_E_NO_ACCESS                                  ((DWORD)0x80100027L)
+#define SCARD_E_WRITE_TOO_MANY                             ((DWORD)0x80100028L)
+#define SCARD_E_BAD_SEEK                                   ((DWORD)0x80100029L)
+#define SCARD_E_INVALID_CHV                                ((DWORD)0x8010002AL)
+#define SCARD_E_UNKNOWN_RES_MNG                            ((DWORD)0x8010002BL)
+#define SCARD_E_NO_SUCH_CERTIFICATE                        ((DWORD)0x8010002CL)
+#define SCARD_E_CERTIFICATE_UNAVAILABLE                    ((DWORD)0x8010002DL)
+#define SCARD_E_NO_READERS_AVAILABLE                       ((DWORD)0x8010002EL)
+#define SCARD_E_COMM_DATA_LOST                             ((DWORD)0x8010002FL)
+#define SCARD_E_NO_KEY_CONTAINER                           ((DWORD)0x80100030L)
+#define SCARD_E_SERVER_TOO_BUSY                            ((DWORD)0x80100031L)
+#define SCARD_W_UNSUPPORTED_CARD                           ((DWORD)0x80100065L)
+#define SCARD_W_UNRESPONSIVE_CARD                          ((DWORD)0x80100066L)
+#define SCARD_W_UNPOWERED_CARD                             ((DWORD)0x80100067L)
+#define SCARD_W_RESET_CARD                                 ((DWORD)0x80100068L)
+#define SCARD_W_REMOVED_CARD                               ((DWORD)0x80100069L)
+#define SCARD_W_SECURITY_VIOLATION                         ((DWORD)0x8010006AL)
+#define SCARD_W_WRONG_CHV                                  ((DWORD)0x8010006BL)
+#define SCARD_W_CHV_BLOCKED                                ((DWORD)0x8010006CL)
+#define SCARD_W_EOF                                        ((DWORD)0x8010006DL)
+#define SCARD_W_CANCELLED_BY_USER                          ((DWORD)0x8010006EL)
+#define SCARD_W_CARD_NOT_AUTHENTICATED                     ((DWORD)0x8010006FL)
+#define SCARD_W_CACHE_ITEM_NOT_FOUND                       ((DWORD)0x80100070L)
+#define SCARD_W_CACHE_ITEM_STALE                           ((DWORD)0x80100071L)
+#define SCARD_W_CACHE_ITEM_TOO_BIG                         ((DWORD)0x80100072L)
+
+#endif /* SCARD_S_SUCCESS */
diff --git a/include/winerror.h b/include/winerror.h
index c04bd96..437cc83 100644
--- a/include/winerror.h
+++ b/include/winerror.h
@@ -2334,13 +2334,70 @@
 #define SPAPI_E_ERROR_NOT_INSTALLED                        _HRESULT_TYPEDEF_(0x800F1000L)
 
 /* Smart card management error codes */
+#define SCARD_S_SUCCESS                                    NO_ERROR
+#define SCARD_F_INTERNAL_ERROR                             _HRESULT_TYPEDEF_(0x80100001L)
+#define SCARD_E_CANCELLED                                  _HRESULT_TYPEDEF_(0x80100002L)
+#define SCARD_E_INVALID_HANDLE                             _HRESULT_TYPEDEF_(0x80100003L)
+#define SCARD_E_INVALID_PARAMETER                          _HRESULT_TYPEDEF_(0x80100004L)
+#define SCARD_E_INVALID_TARGET                             _HRESULT_TYPEDEF_(0x80100005L)
+#define SCARD_E_NO_MEMORY                                  _HRESULT_TYPEDEF_(0x80100006L)
+#define SCARD_F_WAITED_TOO_LONG                            _HRESULT_TYPEDEF_(0x80100007L)
+#define SCARD_E_INSUFFICIENT_BUFFER                        _HRESULT_TYPEDEF_(0x80100008L)
+#define SCARD_E_UNKNOWN_READER                             _HRESULT_TYPEDEF_(0x80100009L)
+#define SCARD_E_TIMEOUT                                    _HRESULT_TYPEDEF_(0x8010000AL)
+#define SCARD_E_SHARING_VIOLATION                          _HRESULT_TYPEDEF_(0x8010000BL)
 #define SCARD_E_NO_SMARTCARD                               _HRESULT_TYPEDEF_(0x8010000CL)
+#define SCARD_E_UNKNOWN_CARD                               _HRESULT_TYPEDEF_(0x8010000DL)
+#define SCARD_E_CANT_DISPOSE                               _HRESULT_TYPEDEF_(0x8010000EL)
+#define SCARD_E_PROTO_MISMATCH                             _HRESULT_TYPEDEF_(0x8010000FL)
+#define SCARD_E_NOT_READY                                  _HRESULT_TYPEDEF_(0x80100010L)
+#define SCARD_E_INVALID_VALUE                              _HRESULT_TYPEDEF_(0x80100011L)
+#define SCARD_E_SYSTEM_CANCELLED                           _HRESULT_TYPEDEF_(0x80100012L)
+#define SCARD_F_COMM_ERROR                                 _HRESULT_TYPEDEF_(0x80100013L)
+#define SCARD_F_UNKNOWN_ERROR                              _HRESULT_TYPEDEF_(0x80100014L)
+#define SCARD_E_INVALID_ATR                                _HRESULT_TYPEDEF_(0x80100015L)
+#define SCARD_E_NOT_TRANSACTED                             _HRESULT_TYPEDEF_(0x80100016L)
+#define SCARD_E_READER_UNAVAILABLE                         _HRESULT_TYPEDEF_(0x80100017L)
+#define SCARD_P_SHUTDOWN                                   _HRESULT_TYPEDEF_(0x80100018L)
+#define SCARD_E_PCI_TOO_SMALL                              _HRESULT_TYPEDEF_(0x80100019L)
+#define SCARD_E_READER_UNSUPPORTED                         _HRESULT_TYPEDEF_(0x8010001AL)
+#define SCARD_E_DUPLICATE_READER                           _HRESULT_TYPEDEF_(0x8010001BL)
+#define SCARD_E_CARD_UNSUPPORTED                           _HRESULT_TYPEDEF_(0x8010001CL)
+#define SCARD_E_NO_SERVICE                                 _HRESULT_TYPEDEF_(0x8010001DL)
+#define SCARD_E_SERVICE_STOPPED                            _HRESULT_TYPEDEF_(0x8010001EL)
+#define SCARD_E_UNEXPECTED                                 _HRESULT_TYPEDEF_(0x8010001FL)
+#define SCARD_E_ICC_INSTALLATION                           _HRESULT_TYPEDEF_(0x80100020L)
+#define SCARD_E_ICC_CREATEORDER                            _HRESULT_TYPEDEF_(0x80100021L)
+#define SCARD_E_UNSUPPORTED_FEATURE                        _HRESULT_TYPEDEF_(0x80100022L)
+#define SCARD_E_DIR_NOT_FOUND                              _HRESULT_TYPEDEF_(0x80100023L)
+#define SCARD_E_FILE_NOT_FOUND                             _HRESULT_TYPEDEF_(0x80100024L)
+#define SCARD_E_NO_DIR                                     _HRESULT_TYPEDEF_(0x80100025L)
+#define SCARD_E_NO_FILE                                    _HRESULT_TYPEDEF_(0x80100026L)
+#define SCARD_E_NO_ACCESS                                  _HRESULT_TYPEDEF_(0x80100027L)
+#define SCARD_E_WRITE_TOO_MANY                             _HRESULT_TYPEDEF_(0x80100028L)
+#define SCARD_E_BAD_SEEK                                   _HRESULT_TYPEDEF_(0x80100029L)
+#define SCARD_E_INVALID_CHV                                _HRESULT_TYPEDEF_(0x8010002AL)
+#define SCARD_E_UNKNOWN_RES_MNG                            _HRESULT_TYPEDEF_(0x8010002BL)
 #define SCARD_E_NO_SUCH_CERTIFICATE                        _HRESULT_TYPEDEF_(0x8010002CL)
+#define SCARD_E_CERTIFICATE_UNAVAILABLE                    _HRESULT_TYPEDEF_(0x8010002DL)
+#define SCARD_E_NO_READERS_AVAILABLE                       _HRESULT_TYPEDEF_(0x8010002EL)
 #define SCARD_E_COMM_DATA_LOST                             _HRESULT_TYPEDEF_(0x8010002FL)
-
+#define SCARD_E_NO_KEY_CONTAINER                           _HRESULT_TYPEDEF_(0x80100030L)
+#define SCARD_E_SERVER_TOO_BUSY                            _HRESULT_TYPEDEF_(0x80100031L)
+#define SCARD_W_UNSUPPORTED_CARD                           _HRESULT_TYPEDEF_(0x80100065L)
+#define SCARD_W_UNRESPONSIVE_CARD                          _HRESULT_TYPEDEF_(0x80100066L)
+#define SCARD_W_UNPOWERED_CARD                             _HRESULT_TYPEDEF_(0x80100067L)
+#define SCARD_W_RESET_CARD                                 _HRESULT_TYPEDEF_(0x80100068L)
+#define SCARD_W_REMOVED_CARD                               _HRESULT_TYPEDEF_(0x80100069L)
+#define SCARD_W_SECURITY_VIOLATION                         _HRESULT_TYPEDEF_(0x8010006AL)
 #define SCARD_W_WRONG_CHV                                  _HRESULT_TYPEDEF_(0x8010006BL)
 #define SCARD_W_CHV_BLOCKED                                _HRESULT_TYPEDEF_(0x8010006CL)
+#define SCARD_W_EOF                                        _HRESULT_TYPEDEF_(0x8010006DL)
+#define SCARD_W_CANCELLED_BY_USER                          _HRESULT_TYPEDEF_(0x8010006EL)
 #define SCARD_W_CARD_NOT_AUTHENTICATED                     _HRESULT_TYPEDEF_(0x8010006FL)
+#define SCARD_W_CACHE_ITEM_NOT_FOUND                       _HRESULT_TYPEDEF_(0x80100070L)
+#define SCARD_W_CACHE_ITEM_STALE                           _HRESULT_TYPEDEF_(0x80100071L)
+#define SCARD_W_CACHE_ITEM_TOO_BIG                         _HRESULT_TYPEDEF_(0x80100072L)
 
 #define ERROR_AUDITING_DISABLED                            _HRESULT_TYPEDEF_(0xC0090001L)
 #define ERROR_ALL_SIDS_FILTERED                            _HRESULT_TYPEDEF_(0xC0090002L)
-- 
1.4.4.4




More information about the wine-patches mailing list