update for HEAD-2003091401
[reactos.git] / drivers / net / ndis / ndis / stubs.c
1 /*
2  * COPYRIGHT:   See COPYING in the top level directory
3  * PROJECT:     ReactOS NDIS library
4  * FILE:        ndis/stubs.c
5  * PURPOSE:     Stubs
6  * PROGRAMMERS: Casper S. Hornstrup (chorns@users.sourceforge.net)
7  * REVISIONS:
8  *   CSH 01/08-2000 Created
9  */
10 #include <ndissys.h>
11
12
13 /*
14  * @unimplemented
15  */
16 VOID
17 EXPORT
18 NdisCompleteQueryStatistics(
19     IN  NDIS_HANDLE     NdisAdapterHandle,
20     IN  PNDIS_REQUEST   NdisRequest,
21     IN  NDIS_STATUS     Status)
22 {
23     UNIMPLEMENTED
24 }
25
26
27 /*
28  * @unimplemented
29  */
30 VOID
31 EXPORT
32 NdisCompleteUnbindAdapter(
33     IN  NDIS_HANDLE UnbindAdapterContext,
34     IN  NDIS_STATUS Status)
35 {
36     UNIMPLEMENTED
37 }
38
39
40 /*
41  * @implemented
42  */
43 VOID
44 EXPORT
45 NdisInitializeListHead(
46     IN  PLIST_ENTRY ListHead)
47 {
48         InitializeListHead(ListHead);
49 }
50
51
52 /*
53  * @implemented
54  */
55 VOID
56 EXPORT
57 NdisInterlockedAddUlong (
58     IN  PULONG          Addend,
59     IN  ULONG           Increment,
60     IN  PNDIS_SPIN_LOCK SpinLock)
61 {
62   ExInterlockedAddUlong ( Addend, Increment, (PKSPIN_LOCK)SpinLock );
63 }
64
65
66 /*
67  * @implemented
68  */
69 PLIST_ENTRY
70 EXPORT
71 NdisInterlockedInsertHeadList(
72     IN  PLIST_ENTRY     ListHead,
73     IN  PLIST_ENTRY     ListEntry,
74     IN  PNDIS_SPIN_LOCK SpinLock)
75 {
76   return ExInterlockedInsertHeadList ( ListHead, ListEntry, (PKSPIN_LOCK)SpinLock );
77 }
78
79
80 /*
81  * @implemented
82  */
83 PLIST_ENTRY
84 EXPORT
85 NdisInterlockedInsertTailList(
86     IN  PLIST_ENTRY     ListHead,
87     IN  PLIST_ENTRY     ListEntry,
88     IN  PNDIS_SPIN_LOCK SpinLock)
89 {
90   return ExInterlockedInsertTailList ( ListHead, ListEntry, (PKSPIN_LOCK)SpinLock );
91 }
92
93
94 /*
95  * @implemented
96  */
97 PLIST_ENTRY
98 EXPORT
99 NdisInterlockedRemoveHeadList(
100     IN  PLIST_ENTRY     ListHead,
101     IN  PNDIS_SPIN_LOCK SpinLock)
102 {
103   return ExInterlockedRemoveHeadList ( ListHead, (PKSPIN_LOCK)SpinLock );
104 }
105
106
107 /*
108  * @unimplemented
109  */
110 VOID
111 EXPORT
112 NdisMCompleteBufferPhysicalMapping(
113     IN  NDIS_HANDLE     MiniportAdapterHandle,
114     IN  PNDIS_BUFFER    Buffer,
115     IN  ULONG           PhysicalMapRegister)
116 {
117 }
118
119
120 /*
121  * @unimplemented
122  */
123 VOID
124 EXPORT
125 NdisMStartBufferPhysicalMapping(
126     IN  NDIS_HANDLE                 MiniportAdapterHandle,
127     IN  PNDIS_BUFFER                Buffer,
128     IN  ULONG                       PhysicalMapRegister,
129     IN  BOOLEAN                     WriteToDevice,
130     OUT PNDIS_PHYSICAL_ADDRESS_UNIT     PhysicalAddressArray,
131     OUT PUINT                       ArraySize)
132 {
133     UNIMPLEMENTED
134 }
135
136
137 /*
138  * @unimplemented
139  */
140 VOID
141 EXPORT
142 NdisMapFile(
143     OUT PNDIS_STATUS    Status,
144     OUT PVOID           * MappedBuffer,
145     IN  NDIS_HANDLE     FileHandle)
146 {
147     UNIMPLEMENTED
148 }
149
150 typedef struct _NDIS_HANDLE_OBJECT
151 {
152   HANDLE FileHandle;
153   BOOL Mapped;
154   ULONG FileLength;
155   PVOID MapBuffer;
156 } NDIS_HANDLE_OBJECT, *PNDIS_HANDLE_OBJECT;
157
158 inline
159 PNDIS_HANDLE_OBJECT
160 NDIS_HANDLE_TO_POBJECT ( NDIS_HANDLE handle )
161 {
162   return (PNDIS_HANDLE_OBJECT)handle;
163 }
164
165 inline
166 NDIS_HANDLE
167 NDIS_POBJECT_TO_HANDLE ( PNDIS_HANDLE_OBJECT obj )
168 {
169   return (NDIS_HANDLE)obj;
170 }
171
172 const WCHAR* NDIS_FILE_FOLDER = L"\\SystemRoot\\System32\\Drivers\\";
173
174 /*
175  * @implemented
176  */
177 VOID
178 EXPORT
179 NdisCloseFile(
180     IN  NDIS_HANDLE FileHandle)
181 {
182   PNDIS_HANDLE_OBJECT FileHandleObject;
183
184   ASSERT_IRQL(PASSIVE_LEVEL);
185
186   ASSERT ( FileHandle );
187
188   FileHandleObject = NDIS_HANDLE_TO_POBJECT(FileHandle);
189
190   ASSERT ( FileHandleObject->FileHandle );
191
192   /*
193   if ( FileHandleObject->Mapped )
194     NdisUnmapFile ( FileHandle );
195   */
196
197   ZwClose ( FileHandleObject->FileHandle );
198
199   memset ( FileHandleObject, 0, sizeof(NDIS_HANDLE_OBJECT) );
200
201   ExFreePool ( FileHandleObject );
202 }
203
204
205 /*
206  * @unimplemented
207  */
208 NDIS_STATUS
209 EXPORT
210 NdisIMDeInitializeDeviceInstance(
211     IN  NDIS_HANDLE NdisMiniportHandle)
212 {
213     UNIMPLEMENTED
214
215         return NDIS_STATUS_FAILURE;
216 }
217
218
219 /*
220  * @unimplemented
221  */
222 NDIS_STATUS
223 EXPORT
224 NdisIMInitializeDeviceInstance(
225     IN  NDIS_HANDLE     DriverHandle,
226     IN  PNDIS_STRING    DeviceInstance)
227 {
228     UNIMPLEMENTED
229
230         return NDIS_STATUS_FAILURE;
231 }
232
233
234 /*
235  * @unimplemented
236  */
237 NDIS_STATUS
238 EXPORT
239 NdisIMRegisterLayeredMiniport(
240     IN  NDIS_HANDLE                     NdisWrapperHandle,
241     IN  PNDIS_MINIPORT_CHARACTERISTICS  MiniportCharacteristics,
242     IN  UINT                            CharacteristicsLength,
243     OUT PNDIS_HANDLE                    DriverHandle)
244 {
245     UNIMPLEMENTED
246
247         return NDIS_STATUS_FAILURE;
248 }
249
250
251 /*
252  * @unimplemented
253  */
254 VOID
255 EXPORT
256 NdisMWanIndicateReceive(
257     OUT PNDIS_STATUS    Status,
258     IN  NDIS_HANDLE     MiniportAdapterHandle,
259     IN  NDIS_HANDLE     NdisLinkContext,
260     IN  PUCHAR          PacketBuffer,
261     IN  UINT            PacketSize)
262 {
263     UNIMPLEMENTED
264 }
265
266
267 /*
268  * @unimplemented
269  */
270 VOID
271 EXPORT
272 NdisMWanIndicateReceiveComplete(
273     IN  NDIS_HANDLE MiniportAdapterHandle)
274 {
275     UNIMPLEMENTED
276 }
277
278
279 /*
280  * @unimplemented
281  */
282 VOID
283 EXPORT
284 NdisMWanSendComplete(
285     IN  NDIS_HANDLE         MiniportAdapterHandle,
286     IN  PNDIS_WAN_PACKET    Packet,
287     IN  NDIS_STATUS         Status)
288 {
289     UNIMPLEMENTED
290 }
291
292
293 /*
294  * @unimplemented
295  */
296 VOID
297 EXPORT
298 NdisOpenFile(
299     OUT PNDIS_STATUS            Status,
300     OUT PNDIS_HANDLE            FileHandle,
301     OUT PUINT                   FileLength,
302     IN  PNDIS_STRING            FileName,
303     IN  NDIS_PHYSICAL_ADDRESS   HighestAcceptableAddress)
304 {
305   NDIS_STRING FullFileName;
306   OBJECT_ATTRIBUTES ObjectAttributes;
307   PNDIS_HANDLE_OBJECT FileHandleObject = NULL;
308   //IO_STATUS_BLOCK IoStatusBlock;
309
310   ASSERT_IRQL(PASSIVE_LEVEL);
311
312   *Status = NDIS_STATUS_SUCCESS;
313   FullFileName.Buffer = NULL;
314
315   ASSERT ( Status && FileName );
316
317   FullFileName.Length = sizeof(NDIS_FILE_FOLDER);
318   FullFileName.MaximumLength = FileName->MaximumLength + sizeof(NDIS_FILE_FOLDER);
319   FullFileName.Buffer = ExAllocatePool ( NonPagedPool, FullFileName.MaximumLength );
320
321   if ( !FullFileName.Buffer )
322   {
323     *Status = NDIS_STATUS_RESOURCES;
324     goto cleanup;
325   }
326
327   FileHandleObject = ExAllocatePool ( NonPagedPool, sizeof(NDIS_HANDLE_OBJECT) );
328   if ( !FileHandleObject )
329   {
330     *Status = NDIS_STATUS_RESOURCES;
331     goto cleanup;
332   }
333   memset ( FileHandleObject, 0, sizeof(NDIS_HANDLE_OBJECT) );
334
335   memmove ( FullFileName.Buffer, NDIS_FILE_FOLDER, FullFileName.Length );
336   *Status = RtlAppendUnicodeStringToString ( &FullFileName, FileName );
337   if ( !NT_SUCCESS(*Status) )
338     goto cleanup;
339
340   InitializeObjectAttributes ( &ObjectAttributes,
341     &FullFileName,
342     OBJ_CASE_INSENSITIVE,
343     NULL,
344     NULL );
345
346   *Status = ZwCreateFile (
347     &FileHandleObject->FileHandle,
348     FILE_READ_DATA|SYNCHRONIZE,
349     &ObjectAttributes,
350     NULL, //&IoStatusBlock, // PIO_STATUS_BLOCK
351     NULL, // PLARGE_INTEGER AllocationSize
352     0, // ULONG FileAttributes
353     FILE_SHARE_READ, // ULONG ShareAccess
354     CREATE_NEW, // ULONG CreateDisposition
355     FILE_SYNCHRONOUS_IO_NONALERT, // ULONG CreateOptions
356     0, // PVOID EaBuffer
357     0 ); // ULONG EaLength
358
359   //if ( !NT_SUCCESS(*Status) )
360   //  goto cleanup;
361
362 cleanup:
363   if ( FullFileName.Buffer != NULL )
364   {
365     ExFreePool ( FullFileName.Buffer );
366     FullFileName.Buffer = NULL;
367   }
368   if ( !NT_SUCCESS(*Status) && FileHandleObject != NULL )
369   {
370     ExFreePool ( FileHandleObject );
371     FileHandleObject = NULL;
372     *FileHandle = NULL;
373   }
374   else
375     *FileHandle = NDIS_POBJECT_TO_HANDLE(FileHandleObject);
376
377   return;
378 }
379
380
381 /*
382 NdisOpenGlobalConfiguration
383 */
384
385 #if 0
386 VOID
387 EXPORT
388 NdisRegisterTdiCallBack(
389     IN  TDI_REGISTER_CALLBACK   RegsterCallback)
390 {
391     UNIMPLEMENTED
392 }
393 #endif
394
395
396 /*
397 NdisScheduleWorkItem
398 */
399
400
401 #if 0
402 VOID
403 EXPORT
404 NdisSetProtocolFilter(
405     OUT PNDIS_STATUS            Status,
406     IN  NDIS_HANDLE             NdisBindingHandle,
407     IN  RECEIVE_HANDLER         ReceiveHandler,
408     IN  RECEIVE_PACKET_HANDLER  ReceivePacketHandler,
409     IN  NDIS_MEDIUM             Medium,
410     IN  UINT                    Offset,
411     IN  UINT                    Size,
412     IN  PUCHAR                  Pattern)
413 {
414     UNIMPLEMENTED
415 }
416 #endif
417
418
419 /*
420  * @unimplemented
421  */
422 CCHAR
423 EXPORT
424 NdisSystemProcessorCount(
425     VOID)
426 {
427         return (CCHAR)1;
428 }
429
430
431 /*
432  * @unimplemented
433  */
434 VOID
435 EXPORT
436 NdisUnmapFile(
437     IN  NDIS_HANDLE FileHandle)
438 {
439     UNIMPLEMENTED
440 }
441
442
443 /*
444 NdisUpcaseUnicodeString
445 NdisUpdateSharedMemory@4
446 */
447
448
449 /*
450 NdisWriteEventLogEntry
451 */
452
453
454
455 /* NDIS 5.0 extensions */
456
457 /*
458  * @unimplemented
459  */
460 VOID
461 EXPORT
462 NdisCompletePnPEvent(
463     IN  NDIS_STATUS     Status,
464     IN  NDIS_HANDLE     NdisBindingHandle,
465     IN  PNET_PNP_EVENT  NetPnPEvent)
466 /*
467  * FUNCTION:
468  * ARGUMENTS:
469  * NOTES:
470  *    NDIS 5.0
471  */
472 {
473     UNIMPLEMENTED
474 }
475
476
477 /*
478  * @unimplemented
479  */
480 VOID
481 EXPORT
482 NdisConvertStringToAtmAddress(
483     OUT PNDIS_STATUS    Status,
484     IN  PNDIS_STRING    String,
485     OUT PATM_ADDRESS    AtmAddress)
486 /*
487  * FUNCTION:
488  * ARGUMENTS:
489  * NOTES:
490  *    NDIS 5.0
491  */
492 {
493     UNIMPLEMENTED
494 }
495
496
497 /*
498  * @unimplemented
499  */
500 VOID
501 EXPORT
502 NdisGetCurrentProcessorCounts(
503     OUT PULONG  pIdleCount,
504     OUT PULONG  pKernelAndUser,
505     OUT PULONG  pIndex)
506 /*
507  * FUNCTION:
508  * ARGUMENTS:
509  * NOTES:
510  *    NDIS 5.0
511  */
512 {
513     UNIMPLEMENTED
514 }
515
516
517 /*
518  * @unimplemented
519  */
520 VOID
521 EXPORT
522 NdisGetDriverHandle(
523     IN  PNDIS_HANDLE    NdisBindingHandle,
524     OUT PNDIS_HANDLE    NdisDriverHandle)
525 /*
526  * FUNCTION:
527  * ARGUMENTS:
528  * NOTES:
529  *    NDIS 5.0
530  */
531 {
532     UNIMPLEMENTED
533 }
534
535
536 /*
537  * @unimplemented
538  */
539 PNDIS_PACKET
540 EXPORT
541 NdisGetReceivedPacket(
542     IN  PNDIS_HANDLE    NdisBindingHandle,
543     IN  PNDIS_HANDLE    MacContext)
544 /*
545  * FUNCTION:
546  * ARGUMENTS:
547  * NOTES:
548  *    NDIS 5.0
549  */
550 {
551     UNIMPLEMENTED
552
553     return NULL;
554 }
555
556
557 /*
558  * @unimplemented
559  */
560 VOID
561 EXPORT
562 NdisGetSystemUptime(
563     OUT PULONG  pSystemUpTime)
564 /*
565  * FUNCTION:
566  * ARGUMENTS:
567  * NOTES:
568  *    NDIS 5.0
569  */
570 {
571     UNIMPLEMENTED
572 }
573
574
575 /*
576  * @implemented
577  */
578 LONG
579 EXPORT
580 NdisInterlockedDecrement(
581     IN  PLONG   Addend)
582 /*
583  * FUNCTION:
584  * ARGUMENTS:
585  * NOTES:
586  *    NDIS 5.0
587  */
588 {
589   return InterlockedDecrement ( Addend );
590 }
591
592
593 /*
594  * @implemented
595  */
596 LONG
597 EXPORT
598 NdisInterlockedIncrement(
599     IN  PLONG   Addend)
600 /*
601  * FUNCTION:
602  * ARGUMENTS:
603  * NOTES:
604  *    NDIS 5.0
605  */
606 {
607   return InterlockedIncrement ( Addend );
608 }
609
610
611 /*
612  * @implemented
613  */
614 PSINGLE_LIST_ENTRY 
615 EXPORT
616 NdisInterlockedPopEntrySList(
617     IN  PSLIST_HEADER   ListHead,
618     IN  PKSPIN_LOCK     Lock)
619 /*
620  * FUNCTION:
621  * ARGUMENTS:
622  * NOTES:
623  *    NDIS 5.0
624  */
625 {
626   return ExInterlockedPopEntrySList ( ListHead, Lock );
627 }
628
629
630 /*
631  * @implemented
632  */
633 PSINGLE_LIST_ENTRY 
634 EXPORT
635 NdisInterlockedPushEntrySList(
636     IN  PSLIST_HEADER       ListHead,
637     IN  PSINGLE_LIST_ENTRY  ListEntry,
638     IN  PKSPIN_LOCK         Lock)
639 /*
640  * FUNCTION:
641  * ARGUMENTS:
642  * NOTES:
643  *    NDIS 5.0
644  */
645 {
646   return ExInterlockedPushEntrySList ( ListHead, ListEntry, Lock );
647 }
648
649
650 /*
651  * @unimplemented
652  */
653 NDIS_STATUS
654 EXPORT
655 NdisMDeregisterDevice(
656     IN  NDIS_HANDLE NdisDeviceHandle)
657 /*
658  * FUNCTION:
659  * ARGUMENTS:
660  * NOTES:
661  *    NDIS 5.0
662  */
663 {
664     UNIMPLEMENTED
665
666     return NDIS_STATUS_FAILURE;
667 }
668
669
670 /*
671  * @unimplemented
672  */
673 VOID
674 EXPORT
675 NdisMGetDeviceProperty(
676     IN      NDIS_HANDLE         MiniportAdapterHandle,
677     IN OUT  PDEVICE_OBJECT      *PhysicalDeviceObject           OPTIONAL,
678     IN OUT  PDEVICE_OBJECT      *FunctionalDeviceObject         OPTIONAL,
679     IN OUT  PDEVICE_OBJECT      *NextDeviceObject               OPTIONAL,
680     IN OUT  PCM_RESOURCE_LIST   *AllocatedResources             OPTIONAL,
681     IN OUT  PCM_RESOURCE_LIST   *AllocatedResourcesTranslated   OPTIONAL)
682 /*
683  * FUNCTION:
684  * ARGUMENTS:
685  * NOTES:
686  *    NDIS 5.0
687  */
688 {
689     UNIMPLEMENTED
690 }
691
692
693 /*
694  * @unimplemented
695  */
696 NDIS_STATUS
697 EXPORT
698 NdisMInitializeScatterGatherDma(
699     IN  NDIS_HANDLE MiniportAdapterHandle,
700     IN  BOOLEAN     Dma64BitAddresses,
701     IN  ULONG       MaximumPhysicalMapping)
702 /*
703  * FUNCTION:
704  * ARGUMENTS:
705  * NOTES:
706  *    NDIS 5.0
707  */
708 {
709     UNIMPLEMENTED
710
711     return NDIS_STATUS_FAILURE;
712 }
713
714
715 /*
716  * @unimplemented
717  */
718 NDIS_STATUS
719 EXPORT
720 NdisMPromoteMiniport(
721     IN  NDIS_HANDLE MiniportAdapterHandle)
722 /*
723  * FUNCTION:
724  * ARGUMENTS:
725  * NOTES:
726  *    NDIS 5.0
727  */
728 {
729     UNIMPLEMENTED
730
731     return NDIS_STATUS_FAILURE;
732 }
733
734
735 /*
736  * @unimplemented
737  */
738 NDIS_STATUS
739 EXPORT
740 NdisMQueryAdapterInstanceName(
741     OUT PNDIS_STRING    AdapterInstanceName,
742     IN  NDIS_HANDLE     MiniportAdapterHandle)
743 /*
744  * FUNCTION:
745  * ARGUMENTS:
746  * NOTES:
747  *    NDIS 5.0
748  */
749 {
750     UNIMPLEMENTED
751
752     return NDIS_STATUS_FAILURE;
753 }
754
755
756 /*
757  * @unimplemented
758  */
759 NDIS_STATUS
760 EXPORT
761 NdisMRegisterDevice(
762     IN  NDIS_HANDLE         NdisWrapperHandle,
763     IN  PNDIS_STRING        DeviceName,
764     IN  PNDIS_STRING        SymbolicName,
765     IN  PDRIVER_DISPATCH    MajorFunctions[],
766     OUT PDEVICE_OBJECT      *pDeviceObject,
767     OUT NDIS_HANDLE         *NdisDeviceHandle)
768 /*
769  * FUNCTION:
770  * ARGUMENTS:
771  * NOTES:
772  *    NDIS 5.0
773  */
774 {
775     UNIMPLEMENTED
776
777     return NDIS_STATUS_FAILURE;
778 }
779
780
781 /*
782  * @unimplemented
783  */
784 VOID
785 EXPORT
786 NdisMRegisterUnloadHandler(
787     IN  NDIS_HANDLE     NdisWrapperHandle,
788     IN  PDRIVER_UNLOAD  UnloadHandler)
789 /*
790  * FUNCTION:
791  * ARGUMENTS:
792  * NOTES:
793  *    NDIS 5.0
794  */
795 {
796     UNIMPLEMENTED
797 }
798
799
800 /*
801  * @unimplemented
802  */
803 NDIS_STATUS
804 EXPORT
805 NdisMRemoveMiniport(
806     IN  NDIS_HANDLE MiniportAdapterHandle)
807 /*
808  * FUNCTION:
809  * ARGUMENTS:
810  * NOTES:
811  *    NDIS 5.0
812  */
813 {
814     UNIMPLEMENTED
815
816     return NDIS_STATUS_FAILURE;
817 }
818
819
820 /*
821  * @unimplemented
822  */
823 NDIS_STATUS
824 EXPORT
825 NdisMSetMiniportSecondary(
826     IN  NDIS_HANDLE MiniportAdapterHandle,
827     IN  NDIS_HANDLE PrimaryMiniportAdapterHandle)
828 /*
829  * FUNCTION:
830  * ARGUMENTS:
831  * NOTES:
832  *    NDIS 5.0
833  */
834 {
835     UNIMPLEMENTED
836
837     return NDIS_STATUS_FAILURE;
838 }
839
840
841
842 /*
843  * @unimplemented
844  */
845 NDIS_STATUS
846 EXPORT
847 NdisQueryAdapterInstanceName(
848     OUT PNDIS_STRING    AdapterInstanceName,
849     IN  NDIS_HANDLE     NdisBindingHandle)
850 /*
851  * FUNCTION:
852  * ARGUMENTS:
853  * NOTES:
854  *    NDIS 5.0
855  */
856 {
857     UNIMPLEMENTED
858
859     return NDIS_STATUS_FAILURE;
860 }
861
862
863 /*
864  * @unimplemented
865  */
866 VOID
867 EXPORT
868 NdisQueryBufferSafe(
869     IN  PNDIS_BUFFER    Buffer,
870     OUT PVOID           *VirtualAddress OPTIONAL,
871     OUT PUINT           Length,
872     IN  UINT            Priority)
873 /*
874  * FUNCTION:
875  * ARGUMENTS:
876  * NOTES:
877  *    NDIS 5.0
878  */
879 {
880     UNIMPLEMENTED
881 }
882
883
884 /*
885  * @unimplemented
886  */
887 ULONG
888 EXPORT
889 NdisReadPcmciaAttributeMemory(
890     IN  NDIS_HANDLE NdisAdapterHandle,
891     IN  ULONG       Offset,
892     IN  PVOID       Buffer,
893     IN  ULONG       Length)
894 /*
895  * FUNCTION:
896  * ARGUMENTS:
897  * NOTES:
898  *    NDIS 5.0
899  */
900 {
901     UNIMPLEMENTED
902
903     return 0;
904 }
905
906
907 /*
908  * @unimplemented
909  */
910 VOID
911 EXPORT
912 NdisReleaseReadWriteLock(
913     IN  PNDIS_RW_LOCK   Lock,
914     IN  PLOCK_STATE     LockState)
915 /*
916  * FUNCTION:
917  * ARGUMENTS:
918  * NOTES:
919  *    NDIS 5.0
920  */
921 {
922     UNIMPLEMENTED
923 }
924
925 /*
926  * @unimplemented
927  */
928 ULONG
929 EXPORT
930 NdisWritePcmciaAttributeMemory(
931     IN  NDIS_HANDLE NdisAdapterHandle,
932     IN  ULONG       Offset,
933     IN  PVOID       Buffer,
934     IN  ULONG       Length)
935 /*
936  * FUNCTION:
937  * ARGUMENTS:
938  * NOTES:
939  *    NDIS 5.0
940  */
941 {
942     UNIMPLEMENTED
943
944     return 0;
945 }
946
947
948 /* NDIS 5.0 extensions for intermediate drivers */
949
950 /*
951  * @unimplemented
952  */
953 VOID
954 EXPORT
955 NdisIMAssociateMiniport(
956     IN  NDIS_HANDLE DriverHandle,
957     IN  NDIS_HANDLE ProtocolHandle)
958 /*
959  * FUNCTION:
960  * ARGUMENTS:
961  * NOTES:
962  *    NDIS 5.0
963  */
964 {
965     UNIMPLEMENTED
966 }
967
968
969 /*
970  * @unimplemented
971  */
972 NDIS_STATUS 
973 EXPORT
974 NdisIMCancelInitializeDeviceInstance(
975     IN  NDIS_HANDLE     DriverHandle,
976     IN  PNDIS_STRING    DeviceInstance)
977 /*
978  * FUNCTION:
979  * ARGUMENTS:
980  * NOTES:
981  *    NDIS 5.0
982  */
983 {
984     UNIMPLEMENTED
985
986     return NDIS_STATUS_FAILURE;
987 }
988
989
990 /*
991  * @unimplemented
992  */
993 VOID
994 EXPORT
995 NdisIMCopySendCompletePerPacketInfo(
996     IN  PNDIS_PACKET    DstPacket,
997     IN  PNDIS_PACKET    SrcPacket)
998 /*
999  * FUNCTION:
1000  * ARGUMENTS:
1001  * NOTES:
1002  *    NDIS 5.0
1003  */
1004 {
1005     UNIMPLEMENTED
1006 }
1007
1008
1009 /*
1010  * @unimplemented
1011  */
1012 VOID
1013 EXPORT
1014 NdisIMCopySendPerPacketInfo(
1015     IN  PNDIS_PACKET    DstPacket,
1016     IN  PNDIS_PACKET    SrcPacket)
1017 /*
1018  * FUNCTION:
1019  * ARGUMENTS:
1020  * NOTES:
1021  *    NDIS 5.0
1022  */
1023 {
1024     UNIMPLEMENTED
1025 }
1026
1027
1028 /*
1029  * @unimplemented
1030  */
1031 VOID
1032 EXPORT
1033 NdisIMDeregisterLayeredMiniport(
1034     IN  NDIS_HANDLE DriverHandle)
1035 /*
1036  * FUNCTION:
1037  * ARGUMENTS:
1038  * NOTES:
1039  *    NDIS 5.0
1040  */
1041 {
1042     UNIMPLEMENTED
1043 }
1044
1045
1046 /*
1047  * @unimplemented
1048  */
1049 NDIS_HANDLE
1050 EXPORT
1051 NdisIMGetBindingContext(
1052     IN  NDIS_HANDLE NdisBindingHandle)
1053 /*
1054  * FUNCTION:
1055  * ARGUMENTS:
1056  * NOTES:
1057  *    NDIS 5.0
1058  */
1059 {
1060     UNIMPLEMENTED
1061
1062     return (NDIS_HANDLE)NULL;
1063 }
1064
1065
1066 /*
1067  * @unimplemented
1068  */
1069 NDIS_HANDLE
1070 EXPORT
1071 NdisIMGetDeviceContext(
1072     IN  NDIS_HANDLE MiniportAdapterHandle)
1073 /*
1074  * FUNCTION:
1075  * ARGUMENTS:
1076  * NOTES:
1077  *    NDIS 5.0
1078  */
1079 {
1080     UNIMPLEMENTED
1081
1082     return (NDIS_HANDLE)NULL;
1083 }
1084
1085
1086 /*
1087  * @unimplemented
1088  */
1089 NDIS_STATUS
1090 EXPORT
1091 NdisIMInitializeDeviceInstanceEx(
1092     IN  NDIS_HANDLE     DriverHandle,
1093     IN  PNDIS_STRING    DriverInstance,
1094     IN  NDIS_HANDLE     DeviceContext   OPTIONAL)
1095 /*
1096  * FUNCTION:
1097  * ARGUMENTS:
1098  * NOTES:
1099  *    NDIS 5.0
1100  */
1101 {
1102     UNIMPLEMENTED
1103
1104     return NDIS_STATUS_FAILURE;
1105 }
1106
1107 /* EOF */