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