- Sync with trunk r58248 to bring the latest changes from Amine (headers) and others...
[reactos.git] / dll / win32 / winscard / winscard.c
1 /*
2 * ReactOS SmartCard API
3 * Copyright (C) 2004 ReactOS Team
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 */
19 /* $Id$
20 *
21 * PROJECT: ReactOS SmartCard API
22 * FILE: lib/winscard/winscard.c
23 * PURPOSE: ReactOS SmartCard API
24 * PROGRAMMER: Thomas Weidenmueller <w3seek@reactos.com>
25 *
26 * UPDATE HISTORY:
27 * 11/07/2004 Created
28 */
29 #include "precomp.h"
30
31 const SCARD_IO_REQUEST g_rgSCardT0Pci;
32 const SCARD_IO_REQUEST g_rgSCardT1Pci;
33 const SCARD_IO_REQUEST g_rgSCardRawPci;
34
35 /*
36 * @unimplemented
37 */
38 HANDLE
39 WINAPI
40 SCardAccessStartedEvent(VOID)
41 {
42 UNIMPLEMENTED;
43 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
44 return NULL;
45 }
46
47
48 /*
49 * @unimplemented
50 */
51 LONG
52 WINAPI
53 SCardAddReaderToGroupA(SCARDCONTEXT hContext,
54 LPCSTR szReaderName,
55 LPCSTR szGroupName)
56 {
57 UNIMPLEMENTED;
58 return SCARD_F_UNKNOWN_ERROR;
59 }
60
61
62 /*
63 * @unimplemented
64 */
65 LONG
66 WINAPI
67 SCardAddReaderToGroupW(SCARDCONTEXT hContext,
68 LPCWSTR szReaderName,
69 LPCWSTR szGroupName)
70 {
71 UNIMPLEMENTED;
72 return SCARD_F_UNKNOWN_ERROR;
73 }
74
75
76 /*
77 * @unimplemented
78 */
79 LONG
80 WINAPI
81 SCardBeginTransaction(SCARDHANDLE hCard)
82 {
83 UNIMPLEMENTED;
84 return SCARD_F_UNKNOWN_ERROR;
85 }
86
87
88 /*
89 * @unimplemented
90 */
91 LONG
92 WINAPI
93 SCardCancel(SCARDCONTEXT hContext)
94 {
95 UNIMPLEMENTED;
96 return SCARD_F_UNKNOWN_ERROR;
97 }
98
99
100 /*
101 * @unimplemented
102 */
103 LONG
104 WINAPI
105 SCardConnectA(SCARDCONTEXT hContext,
106 LPCSTR szReader,
107 DWORD dwShareMode,
108 DWORD dwPreferredProtocols,
109 LPSCARDHANDLE phCard,
110 LPDWORD pdwActiveProtocol)
111 {
112 UNIMPLEMENTED;
113 return SCARD_F_UNKNOWN_ERROR;
114 }
115
116
117 /*
118 * @unimplemented
119 */
120 LONG
121 WINAPI
122 SCardConnectW(SCARDCONTEXT hContext,
123 LPCWSTR szReader,
124 DWORD dwShareMode,
125 DWORD dwPreferredProtocols,
126 LPSCARDHANDLE phCard,
127 LPDWORD pdwActiveProtocol)
128 {
129 UNIMPLEMENTED;
130 return SCARD_F_UNKNOWN_ERROR;
131 }
132
133
134 /*
135 * @unimplemented
136 */
137 LONG
138 WINAPI
139 SCardControl(SCARDHANDLE hCard,
140 DWORD dwControlCode,
141 LPCVOID lpInBuffer,
142 DWORD nInBufferSize,
143 LPVOID lpOutBuffer,
144 DWORD nOutBufferSize,
145 LPDWORD lpBytesReturned)
146 {
147 UNIMPLEMENTED;
148 return SCARD_F_UNKNOWN_ERROR;
149 }
150
151
152 /*
153 * @unimplemented
154 */
155 LONG
156 WINAPI
157 SCardDisconnect(SCARDHANDLE hCard,
158 DWORD dwDisposition)
159 {
160 UNIMPLEMENTED;
161 return SCARD_F_UNKNOWN_ERROR;
162 }
163
164
165 /*
166 * @unimplemented
167 */
168 LONG
169 WINAPI
170 SCardEndTransaction(SCARDHANDLE hCard,
171 DWORD dwDisposition)
172 {
173 UNIMPLEMENTED;
174 return SCARD_F_UNKNOWN_ERROR;
175 }
176
177
178 /*
179 * @unimplemented
180 */
181 LONG
182 WINAPI
183 SCardEstablishContext(DWORD dwScope,
184 LPCVOID pvReserved1,
185 LPCVOID pvReserved2,
186 LPSCARDCONTEXT phContext)
187 {
188 UNIMPLEMENTED;
189 return SCARD_F_UNKNOWN_ERROR;
190 }
191
192
193 /*
194 * @unimplemented
195 */
196 LONG
197 WINAPI
198 SCardForgetCardTypeA(SCARDCONTEXT hContext,
199 LPCSTR szCardName)
200 {
201 UNIMPLEMENTED;
202 return SCARD_F_UNKNOWN_ERROR;
203 }
204
205
206 /*
207 * @unimplemented
208 */
209 LONG
210 WINAPI
211 SCardForgetCardTypeW(SCARDCONTEXT hContext,
212 LPCWSTR szCardName)
213 {
214 UNIMPLEMENTED;
215 return SCARD_F_UNKNOWN_ERROR;
216 }
217
218
219 /*
220 * @unimplemented
221 */
222 LONG
223 WINAPI
224 SCardForgetReaderA(SCARDCONTEXT hContext,
225 LPCSTR szReaderName)
226 {
227 UNIMPLEMENTED;
228 return SCARD_F_UNKNOWN_ERROR;
229 }
230
231
232 /*
233 * @unimplemented
234 */
235 LONG
236 WINAPI
237 SCardForgetReaderW(SCARDCONTEXT hContext,
238 LPCWSTR szReaderName)
239 {
240 UNIMPLEMENTED;
241 return SCARD_F_UNKNOWN_ERROR;
242 }
243
244
245 /*
246 * @unimplemented
247 */
248 LONG
249 WINAPI
250 SCardForgetReaderGroupA(SCARDCONTEXT hContext,
251 LPCSTR szGroupName)
252 {
253 UNIMPLEMENTED;
254 return SCARD_F_UNKNOWN_ERROR;
255 }
256
257
258 /*
259 * @unimplemented
260 */
261 LONG
262 WINAPI
263 SCardForgetReaderGroupW(SCARDCONTEXT hContext,
264 LPCWSTR szGroupName)
265 {
266 UNIMPLEMENTED;
267 return SCARD_F_UNKNOWN_ERROR;
268 }
269
270
271 /*
272 * @unimplemented
273 */
274 LONG
275 WINAPI
276 SCardFreeMemory(SCARDCONTEXT hContext,
277 LPCVOID pvMem)
278 {
279 UNIMPLEMENTED;
280 return SCARD_F_UNKNOWN_ERROR;
281 }
282
283
284 /*
285 * @unimplemented
286 */
287 LONG
288 WINAPI
289 SCardGetAttrib(SCARDHANDLE hCard,
290 DWORD dwAttrId,
291 LPBYTE pbAttr,
292 LPDWORD pcbAttrLen)
293 {
294 UNIMPLEMENTED;
295 return SCARD_F_UNKNOWN_ERROR;
296 }
297
298
299 /*
300 * @unimplemented
301 */
302 LONG
303 WINAPI
304 SCardGetCardTypeProviderNameA(SCARDCONTEXT hContext,
305 LPCSTR szCardName,
306 DWORD dwProviderId,
307 LPSTR szProvider,
308 LPDWORD pcchProvider)
309 {
310 UNIMPLEMENTED;
311 return SCARD_F_UNKNOWN_ERROR;
312 }
313
314
315 /*
316 * @unimplemented
317 */
318 LONG
319 WINAPI
320 SCardGetCardTypeProviderNameW(SCARDCONTEXT hContext,
321 LPCWSTR szCardName,
322 DWORD dwProviderId,
323 LPWSTR szProvider,
324 LPDWORD pcchProvider)
325 {
326 UNIMPLEMENTED;
327 return SCARD_F_UNKNOWN_ERROR;
328 }
329
330
331 /*
332 * @unimplemented
333 */
334 LONG
335 WINAPI
336 SCardGetProviderIdA(SCARDCONTEXT hContext,
337 LPCSTR szCard,
338 LPGUID pguidProviderId)
339 {
340 UNIMPLEMENTED;
341 return SCARD_F_UNKNOWN_ERROR;
342 }
343
344
345 /*
346 * @unimplemented
347 */
348 LONG
349 WINAPI
350 SCardGetProviderIdW(SCARDCONTEXT hContext,
351 LPCWSTR szCard,
352 LPGUID pguidProviderId)
353 {
354 UNIMPLEMENTED;
355 return SCARD_F_UNKNOWN_ERROR;
356 }
357
358
359 /*
360 * @unimplemented
361 */
362 LONG
363 WINAPI
364 SCardGetStatusChangeA(SCARDCONTEXT hContext,
365 DWORD dwTimeout,
366 LPSCARD_READERSTATEA rgReaderState,
367 DWORD cReaders)
368 {
369 UNIMPLEMENTED;
370 return SCARD_F_UNKNOWN_ERROR;
371 }
372
373
374 /*
375 * @unimplemented
376 */
377 LONG
378 WINAPI
379 SCardGetStatusChangeW(SCARDCONTEXT hContext,
380 DWORD dwTimeout,
381 LPSCARD_READERSTATEW rgReaderState,
382 DWORD cReaders)
383 {
384 UNIMPLEMENTED;
385 return SCARD_F_UNKNOWN_ERROR;
386 }
387
388
389 /*
390 * @unimplemented
391 */
392 LONG
393 WINAPI
394 SCardIntroduceCardTypeA(SCARDCONTEXT hContext,
395 LPCSTR szCardName,
396 LPCGUID pguidPrimaryProvider,
397 LPCGUID rgguidInterfaces,
398 DWORD dwInterfaceCount,
399 LPCBYTE pbAtr,
400 LPCBYTE pbAtrMask,
401 DWORD cbAtrLen)
402 {
403 UNIMPLEMENTED;
404 return SCARD_F_UNKNOWN_ERROR;
405 }
406
407
408 /*
409 * @unimplemented
410 */
411 LONG
412 WINAPI
413 SCardIntroduceCardTypeW(SCARDCONTEXT hContext,
414 LPCWSTR szCardName,
415 LPCGUID pguidPrimaryProvider,
416 LPCGUID rgguidInterfaces,
417 DWORD dwInterfaceCount,
418 LPCBYTE pbAtr,
419 LPCBYTE pbAtrMask,
420 DWORD cbAtrLen)
421 {
422 UNIMPLEMENTED;
423 return SCARD_F_UNKNOWN_ERROR;
424 }
425
426
427 /*
428 * @unimplemented
429 */
430 LONG
431 WINAPI
432 SCardIntroduceReaderA(SCARDCONTEXT hContext,
433 LPCSTR szReaderName,
434 LPCSTR szDeviceName)
435 {
436 UNIMPLEMENTED;
437 return SCARD_F_UNKNOWN_ERROR;
438 }
439
440
441 /*
442 * @unimplemented
443 */
444 LONG
445 WINAPI
446 SCardIntroduceReaderW(SCARDCONTEXT hContext,
447 LPCWSTR szReaderName,
448 LPCWSTR szDeviceName)
449 {
450 UNIMPLEMENTED;
451 return SCARD_F_UNKNOWN_ERROR;
452 }
453
454
455 /*
456 * @unimplemented
457 */
458 LONG
459 WINAPI
460 SCardIntroduceReaderGroupA(SCARDCONTEXT hContext,
461 LPCSTR szGroupName)
462 {
463 UNIMPLEMENTED;
464 return SCARD_F_UNKNOWN_ERROR;
465 }
466
467
468 /*
469 * @unimplemented
470 */
471 LONG
472 WINAPI
473 SCardIntroduceReaderGroupW(SCARDCONTEXT hContext,
474 LPCWSTR szGroupName)
475 {
476 UNIMPLEMENTED;
477 return SCARD_F_UNKNOWN_ERROR;
478 }
479
480
481 /*
482 * @unimplemented
483 */
484 LONG
485 WINAPI
486 SCardIsValidContext(SCARDCONTEXT hContext)
487 {
488 UNIMPLEMENTED;
489 return SCARD_F_UNKNOWN_ERROR;
490 }
491
492
493 /*
494 * @unimplemented
495 */
496 LONG
497 WINAPI
498 SCardListCardsA(SCARDCONTEXT hContext,
499 LPCBYTE pbAtr,
500 LPCGUID rgguidInterface,
501 DWORD cguidInterfaceCount,
502 LPCSTR mszCards,
503 LPDWORD pcchCards)
504 {
505 UNIMPLEMENTED;
506 return SCARD_F_UNKNOWN_ERROR;
507 }
508
509
510 /*
511 * @unimplemented
512 */
513 LONG
514 WINAPI
515 SCardListCardsW(SCARDCONTEXT hContext,
516 LPCBYTE pbAtr,
517 LPCGUID rgguidInterface,
518 DWORD cguidInterfaceCount,
519 LPCWSTR mszCards,
520 LPDWORD pcchCards)
521 {
522 UNIMPLEMENTED;
523 return SCARD_F_UNKNOWN_ERROR;
524 }
525
526
527 /*
528 * @unimplemented
529 */
530 LONG
531 WINAPI
532 SCardListInterfacesA(SCARDCONTEXT hContext,
533 LPCSTR szCard,
534 LPGUID pguidInterfaces,
535 LPDWORD pcguidInteraces)
536 {
537 UNIMPLEMENTED;
538 return SCARD_F_UNKNOWN_ERROR;
539 }
540
541
542 /*
543 * @unimplemented
544 */
545 LONG
546 WINAPI
547 SCardListInterfacesW(SCARDCONTEXT hContext,
548 LPCWSTR szCard,
549 LPGUID pguidInterfaces,
550 LPDWORD pcguidInteraces)
551 {
552 UNIMPLEMENTED;
553 return SCARD_F_UNKNOWN_ERROR;
554 }
555
556
557 /*
558 * @unimplemented
559 */
560 LONG
561 WINAPI
562 SCardListReaderGroupsA(SCARDCONTEXT hContext,
563 LPSTR mszGroups,
564 LPDWORD pcchGroups)
565 {
566 UNIMPLEMENTED;
567 return SCARD_F_UNKNOWN_ERROR;
568 }
569
570
571 /*
572 * @unimplemented
573 */
574 LONG
575 WINAPI
576 SCardListReaderGroupsW(SCARDCONTEXT hContext,
577 LPWSTR mszGroups,
578 LPDWORD pcchGroups)
579 {
580 UNIMPLEMENTED;
581 return SCARD_F_UNKNOWN_ERROR;
582 }
583
584
585 /*
586 * @unimplemented
587 */
588 LONG
589 WINAPI
590 SCardListReadersA(SCARDCONTEXT Context,
591 LPCSTR mszGroups,
592 LPSTR mszReaders,
593 LPDWORD pcchReaders)
594 {
595 UNIMPLEMENTED;
596 return SCARD_F_UNKNOWN_ERROR;
597 }
598
599
600 /*
601 * @unimplemented
602 */
603 LONG
604 WINAPI
605 SCardListReadersW(SCARDCONTEXT Context,
606 LPCWSTR mszGroups,
607 LPWSTR mszReaders,
608 LPDWORD pcchReaders)
609 {
610 UNIMPLEMENTED;
611 return SCARD_F_UNKNOWN_ERROR;
612 }
613
614
615 /*
616 * @unimplemented
617 */
618 LONG
619 WINAPI
620 SCardLocateCardsA(SCARDCONTEXT hContext,
621 LPCSTR mszCards,
622 LPSCARD_READERSTATEA rgReaderStates,
623 DWORD cReaders)
624 {
625 UNIMPLEMENTED;
626 return SCARD_F_UNKNOWN_ERROR;
627 }
628
629
630 /*
631 * @unimplemented
632 */
633 LONG
634 WINAPI
635 SCardLocateCardsW(SCARDCONTEXT hContext,
636 LPCWSTR mszCards,
637 LPSCARD_READERSTATEW rgReaderStates,
638 DWORD cReaders)
639 {
640 UNIMPLEMENTED;
641 return SCARD_F_UNKNOWN_ERROR;
642 }
643
644
645 /*
646 * @unimplemented
647 */
648 LONG
649 WINAPI
650 SCardLocateCardsByATRA(SCARDCONTEXT hContext,
651 LPSCARD_ATRMASK rgAtrMasks,
652 DWORD cAtrs,
653 LPSCARD_READERSTATEA rgReaderStates,
654 DWORD cReaders)
655 {
656 UNIMPLEMENTED;
657 return SCARD_F_UNKNOWN_ERROR;
658 }
659
660
661 /*
662 * @unimplemented
663 */
664 LONG
665 WINAPI
666 SCardLocateCardsByATRW(SCARDCONTEXT hContext,
667 LPSCARD_ATRMASK rgAtrMasks,
668 DWORD cAtrs,
669 LPSCARD_READERSTATEW rgReaderStates,
670 DWORD cReaders)
671 {
672 UNIMPLEMENTED;
673 return SCARD_F_UNKNOWN_ERROR;
674 }
675
676
677 /*
678 * @unimplemented
679 */
680 LONG
681 WINAPI
682 SCardReconnect(SCARDHANDLE hCard,
683 DWORD dwShareMode,
684 DWORD dwPreferredProtocols,
685 DWORD dwInitialization,
686 LPDWORD pdwActiveProtocol)
687 {
688 UNIMPLEMENTED;
689 return SCARD_F_UNKNOWN_ERROR;
690 }
691
692
693 /*
694 * @unimplemented
695 */
696 LONG
697 WINAPI
698 SCardReleaseContext(SCARDCONTEXT hContext)
699 {
700 UNIMPLEMENTED;
701 return SCARD_F_UNKNOWN_ERROR;
702 }
703
704
705 /*
706 * @unimplemented
707 */
708 VOID
709 WINAPI
710 SCardReleaseStartedEvent(HANDLE hStartedEventHandle)
711 {
712 UNIMPLEMENTED;
713 }
714
715
716 /*
717 * @unimplemented
718 */
719 LONG
720 WINAPI
721 SCardRemoveReaderFromGroupA(SCARDCONTEXT hContext,
722 LPCSTR szReaderName,
723 LPCSTR szGroupname)
724 {
725 UNIMPLEMENTED;
726 return SCARD_F_UNKNOWN_ERROR;
727 }
728
729
730 /*
731 * @unimplemented
732 */
733 LONG
734 WINAPI
735 SCardRemoveReaderFromGroupW(SCARDCONTEXT hContext,
736 LPCWSTR szReaderName,
737 LPCWSTR szGroupname)
738 {
739 UNIMPLEMENTED;
740 return SCARD_F_UNKNOWN_ERROR;
741 }
742
743
744 /*
745 * @unimplemented
746 */
747 LONG
748 WINAPI
749 SCardSetAttrib(SCARDHANDLE hCard,
750 DWORD dwAttrId,
751 LPCBYTE pbAttr,
752 DWORD cbAttrLen)
753 {
754 UNIMPLEMENTED;
755 return SCARD_F_UNKNOWN_ERROR;
756 }
757
758
759 /*
760 * @unimplemented
761 */
762 LONG
763 WINAPI
764 SCardSetCardTypeProviderNameA(SCARDCONTEXT hContext,
765 LPCSTR szCardName,
766 DWORD dwProviderId,
767 LPCSTR szProvider)
768 {
769 UNIMPLEMENTED;
770 return SCARD_F_UNKNOWN_ERROR;
771 }
772
773
774 /*
775 * @unimplemented
776 */
777 LONG
778 WINAPI
779 SCardSetCardTypeProviderNameW(SCARDCONTEXT hContext,
780 LPCWSTR szCardName,
781 DWORD dwProviderId,
782 LPCWSTR szProvider)
783 {
784 UNIMPLEMENTED;
785 return SCARD_F_UNKNOWN_ERROR;
786 }
787
788
789 /*
790 * @unimplemented
791 */
792 LONG
793 WINAPI
794 SCardState(SCARDHANDLE hCard,
795 LPDWORD pdwState,
796 LPDWORD pdwProtocol,
797 LPBYTE pbAtr,
798 LPDWORD pcbAtrlen)
799 {
800 UNIMPLEMENTED;
801 return SCARD_F_UNKNOWN_ERROR;
802 }
803
804
805 /*
806 * @unimplemented
807 */
808 LONG
809 WINAPI
810 SCardStatusA(SCARDHANDLE hCard,
811 LPSTR szReaderName,
812 LPDWORD pcchReaderLen,
813 LPDWORD pdwState,
814 LPDWORD pdwProtocol,
815 LPBYTE pbAtr,
816 LPDWORD pcbAtrLen)
817 {
818 UNIMPLEMENTED;
819 return SCARD_F_UNKNOWN_ERROR;
820 }
821
822
823 /*
824 * @unimplemented
825 */
826 LONG
827 WINAPI
828 SCardStatusW(SCARDHANDLE hCard,
829 LPWSTR szReaderName,
830 LPDWORD pcchReaderLen,
831 LPDWORD pdwState,
832 LPDWORD pdwProtocol,
833 LPBYTE pbAtr,
834 LPDWORD pcbAtrLen)
835 {
836 UNIMPLEMENTED;
837 return SCARD_F_UNKNOWN_ERROR;
838 }
839
840
841 /*
842 * @unimplemented
843 */
844 LONG
845 WINAPI
846 SCardTransmit(SCARDHANDLE hCard,
847 LPCSCARD_IO_REQUEST pioSendPci,
848 LPCBYTE pbSendBuffer,
849 DWORD cbSendLength,
850 LPSCARD_IO_REQUEST pioRecvPci,
851 LPBYTE pbRecvBuffer,
852 LPDWORD pcbRecvLength)
853 {
854 UNIMPLEMENTED;
855 return SCARD_F_UNKNOWN_ERROR;
856 }
857