update for HEAD-2003091401
[reactos.git] / drivers / net / ndis / ndis / stubs.c
index 1360d9e..55f0e90 100644 (file)
 #include <ndissys.h>
 
 
-VOID
-EXPORT
-NdisCompleteBindAdapter(
-    IN  NDIS_HANDLE BindAdapterContext,
-    IN  NDIS_STATUS Status,
-    IN  NDIS_STATUS OpenStatus)
-{
-    UNIMPLEMENTED
-}
-
-
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisCompleteQueryStatistics(
@@ -32,6 +24,9 @@ NdisCompleteQueryStatistics(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisCompleteUnbindAdapter(
@@ -42,15 +37,21 @@ NdisCompleteUnbindAdapter(
 }
 
 
+/*
+ * @implemented
+ */
 VOID
 EXPORT
 NdisInitializeListHead(
     IN  PLIST_ENTRY ListHead)
 {
-    UNIMPLEMENTED
+       InitializeListHead(ListHead);
 }
 
 
+/*
+ * @implemented
+ */
 VOID
 EXPORT
 NdisInterlockedAddUlong (
@@ -58,10 +59,13 @@ NdisInterlockedAddUlong (
     IN  ULONG           Increment,
     IN  PNDIS_SPIN_LOCK SpinLock)
 {
-    UNIMPLEMENTED
+  ExInterlockedAddUlong ( Addend, Increment, (PKSPIN_LOCK)SpinLock );
 }
 
 
+/*
+ * @implemented
+ */
 PLIST_ENTRY
 EXPORT
 NdisInterlockedInsertHeadList(
@@ -69,12 +73,13 @@ NdisInterlockedInsertHeadList(
     IN  PLIST_ENTRY     ListEntry,
     IN  PNDIS_SPIN_LOCK SpinLock)
 {
-    UNIMPLEMENTED
-
-       return NULL;
+  return ExInterlockedInsertHeadList ( ListHead, ListEntry, (PKSPIN_LOCK)SpinLock );
 }
 
 
+/*
+ * @implemented
+ */
 PLIST_ENTRY
 EXPORT
 NdisInterlockedInsertTailList(
@@ -82,24 +87,26 @@ NdisInterlockedInsertTailList(
     IN  PLIST_ENTRY     ListEntry,
     IN  PNDIS_SPIN_LOCK SpinLock)
 {
-    UNIMPLEMENTED
-
-       return NULL;
+  return ExInterlockedInsertTailList ( ListHead, ListEntry, (PKSPIN_LOCK)SpinLock );
 }
 
 
+/*
+ * @implemented
+ */
 PLIST_ENTRY
 EXPORT
 NdisInterlockedRemoveHeadList(
     IN  PLIST_ENTRY     ListHead,
     IN  PNDIS_SPIN_LOCK SpinLock)
 {
-    UNIMPLEMENTED
-
-       return NULL;
+  return ExInterlockedRemoveHeadList ( ListHead, (PKSPIN_LOCK)SpinLock );
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisMCompleteBufferPhysicalMapping(
@@ -110,6 +117,9 @@ NdisMCompleteBufferPhysicalMapping(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisMStartBufferPhysicalMapping(
@@ -124,6 +134,9 @@ NdisMStartBufferPhysicalMapping(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisMapFile(
@@ -134,52 +147,64 @@ NdisMapFile(
     UNIMPLEMENTED
 }
 
-
-VOID
-EXPORT
-NdisWriteConfiguration(
-    OUT PNDIS_STATUS                    Status,
-    IN  NDIS_HANDLE                     WrapperConfigurationContext,
-    IN  PNDIS_STRING                    Keyword,
-    IN  PNDIS_CONFIGURATION_PARAMETER   * ParameterValue)
+typedef struct _NDIS_HANDLE_OBJECT
 {
-    UNIMPLEMENTED
-}
+  HANDLE FileHandle;
+  BOOL Mapped;
+  ULONG FileLength;
+  PVOID MapBuffer;
+} NDIS_HANDLE_OBJECT, *PNDIS_HANDLE_OBJECT;
 
-
-VOID
-EXPORT
-NdisWriteErrorLogEntry(
-    IN  NDIS_HANDLE     NdisAdapterHandle,
-    IN  NDIS_ERROR_CODE ErrorCode,
-    IN  ULONG           NumberOfErrorValues,
-    IN  ULONG           ERROR_LOG_MAXIMUM_SIZE)
-/*  IN  ULONG           ...) 
- *  ERROR_LOG_MAXIMUM_SIZE = ... in MSDN
- */
+inline
+PNDIS_HANDLE_OBJECT
+NDIS_HANDLE_TO_POBJECT ( NDIS_HANDLE handle )
 {
-    UNIMPLEMENTED
+  return (PNDIS_HANDLE_OBJECT)handle;
 }
 
-
-VOID
-EXPORT
-NdisCloseConfiguration(
-    IN  NDIS_HANDLE ConfigurationHandle)
+inline
+NDIS_HANDLE
+NDIS_POBJECT_TO_HANDLE ( PNDIS_HANDLE_OBJECT obj )
 {
-    UNIMPLEMENTED
+  return (NDIS_HANDLE)obj;
 }
 
+const WCHAR* NDIS_FILE_FOLDER = L"\\SystemRoot\\System32\\Drivers\\";
 
+/*
+ * @implemented
+ */
 VOID
 EXPORT
 NdisCloseFile(
     IN  NDIS_HANDLE FileHandle)
 {
-    UNIMPLEMENTED
+  PNDIS_HANDLE_OBJECT FileHandleObject;
+
+  ASSERT_IRQL(PASSIVE_LEVEL);
+
+  ASSERT ( FileHandle );
+
+  FileHandleObject = NDIS_HANDLE_TO_POBJECT(FileHandle);
+
+  ASSERT ( FileHandleObject->FileHandle );
+
+  /*
+  if ( FileHandleObject->Mapped )
+    NdisUnmapFile ( FileHandle );
+  */
+
+  ZwClose ( FileHandleObject->FileHandle );
+
+  memset ( FileHandleObject, 0, sizeof(NDIS_HANDLE_OBJECT) );
+
+  ExFreePool ( FileHandleObject );
 }
 
 
+/*
+ * @unimplemented
+ */
 NDIS_STATUS
 EXPORT
 NdisIMDeInitializeDeviceInstance(
@@ -191,6 +216,9 @@ NdisIMDeInitializeDeviceInstance(
 }
 
 
+/*
+ * @unimplemented
+ */
 NDIS_STATUS
 EXPORT
 NdisIMInitializeDeviceInstance(
@@ -203,6 +231,9 @@ NdisIMInitializeDeviceInstance(
 }
 
 
+/*
+ * @unimplemented
+ */
 NDIS_STATUS
 EXPORT
 NdisIMRegisterLayeredMiniport(
@@ -217,6 +248,9 @@ NdisIMRegisterLayeredMiniport(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisMWanIndicateReceive(
@@ -230,6 +264,9 @@ NdisMWanIndicateReceive(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisMWanIndicateReceiveComplete(
@@ -239,6 +276,9 @@ NdisMWanIndicateReceiveComplete(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisMWanSendComplete(
@@ -250,23 +290,9 @@ NdisMWanSendComplete(
 }
 
 
-VOID
-EXPORT
-NdisOpenConfiguration(
-    OUT PNDIS_STATUS    Status,
-    OUT PNDIS_HANDLE    ConfigurationHandle,
-    IN  NDIS_HANDLE     WrapperConfigurationContext)
-{
-    UNIMPLEMENTED
-}
-
-
 /*
-NdisOpenConfigurationKeyByIndex
-NdisOpenConfigurationKeyByName
-*/
-
-
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisOpenFile(
@@ -276,7 +302,79 @@ NdisOpenFile(
     IN  PNDIS_STRING            FileName,
     IN  NDIS_PHYSICAL_ADDRESS   HighestAcceptableAddress)
 {
-    UNIMPLEMENTED
+  NDIS_STRING FullFileName;
+  OBJECT_ATTRIBUTES ObjectAttributes;
+  PNDIS_HANDLE_OBJECT FileHandleObject = NULL;
+  //IO_STATUS_BLOCK IoStatusBlock;
+
+  ASSERT_IRQL(PASSIVE_LEVEL);
+
+  *Status = NDIS_STATUS_SUCCESS;
+  FullFileName.Buffer = NULL;
+
+  ASSERT ( Status && FileName );
+
+  FullFileName.Length = sizeof(NDIS_FILE_FOLDER);
+  FullFileName.MaximumLength = FileName->MaximumLength + sizeof(NDIS_FILE_FOLDER);
+  FullFileName.Buffer = ExAllocatePool ( NonPagedPool, FullFileName.MaximumLength );
+
+  if ( !FullFileName.Buffer )
+  {
+    *Status = NDIS_STATUS_RESOURCES;
+    goto cleanup;
+  }
+
+  FileHandleObject = ExAllocatePool ( NonPagedPool, sizeof(NDIS_HANDLE_OBJECT) );
+  if ( !FileHandleObject )
+  {
+    *Status = NDIS_STATUS_RESOURCES;
+    goto cleanup;
+  }
+  memset ( FileHandleObject, 0, sizeof(NDIS_HANDLE_OBJECT) );
+
+  memmove ( FullFileName.Buffer, NDIS_FILE_FOLDER, FullFileName.Length );
+  *Status = RtlAppendUnicodeStringToString ( &FullFileName, FileName );
+  if ( !NT_SUCCESS(*Status) )
+    goto cleanup;
+
+  InitializeObjectAttributes ( &ObjectAttributes,
+    &FullFileName,
+    OBJ_CASE_INSENSITIVE,
+    NULL,
+    NULL );
+
+  *Status = ZwCreateFile (
+    &FileHandleObject->FileHandle,
+    FILE_READ_DATA|SYNCHRONIZE,
+    &ObjectAttributes,
+    NULL, //&IoStatusBlock, // PIO_STATUS_BLOCK
+    NULL, // PLARGE_INTEGER AllocationSize
+    0, // ULONG FileAttributes
+    FILE_SHARE_READ, // ULONG ShareAccess
+    CREATE_NEW, // ULONG CreateDisposition
+    FILE_SYNCHRONOUS_IO_NONALERT, // ULONG CreateOptions
+    0, // PVOID EaBuffer
+    0 ); // ULONG EaLength
+
+  //if ( !NT_SUCCESS(*Status) )
+  //  goto cleanup;
+
+cleanup:
+  if ( FullFileName.Buffer != NULL )
+  {
+    ExFreePool ( FullFileName.Buffer );
+    FullFileName.Buffer = NULL;
+  }
+  if ( !NT_SUCCESS(*Status) && FileHandleObject != NULL )
+  {
+    ExFreePool ( FileHandleObject );
+    FileHandleObject = NULL;
+    *FileHandle = NULL;
+  }
+  else
+    *FileHandle = NDIS_POBJECT_TO_HANDLE(FileHandleObject);
+
+  return;
 }
 
 
@@ -284,42 +382,6 @@ NdisOpenFile(
 NdisOpenGlobalConfiguration
 */
 
-VOID
-EXPORT
-NdisOpenProtocolConfiguration(
-    OUT PNDIS_STATUS    Status,
-    OUT PNDIS_HANDLE    ConfigurationHandle,
-    IN  PNDIS_STRING    ProtocolSection)
-{
-    UNIMPLEMENTED
-}
-
-
-VOID
-EXPORT
-NdisReadConfiguration(
-    OUT PNDIS_STATUS                    Status,
-    OUT PNDIS_CONFIGURATION_PARAMETER   * ParameterValue,
-    IN  NDIS_HANDLE                     ConfigurationHandle,
-    IN  PNDIS_STRING                    Keyword,
-    IN  NDIS_PARAMETER_TYPE             ParameterType)
-{
-    UNIMPLEMENTED
-}
-
-
-VOID
-EXPORT
-NdisReadNetworkAddress(
-    OUT PNDIS_STATUS    Status,
-    OUT PVOID           * NetworkAddress,
-    OUT PUINT           NetworkAddressLength,
-    IN  NDIS_HANDLE     ConfigurationHandle)
-{
-    UNIMPLEMENTED
-}
-
-
 #if 0
 VOID
 EXPORT
@@ -354,6 +416,9 @@ NdisSetProtocolFilter(
 #endif
 
 
+/*
+ * @unimplemented
+ */
 CCHAR
 EXPORT
 NdisSystemProcessorCount(
@@ -363,6 +428,9 @@ NdisSystemProcessorCount(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisUnmapFile(
@@ -386,6 +454,9 @@ NdisWriteEventLogEntry
 
 /* NDIS 5.0 extensions */
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisCompletePnPEvent(
@@ -403,6 +474,9 @@ NdisCompletePnPEvent(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisConvertStringToAtmAddress(
@@ -420,6 +494,9 @@ NdisConvertStringToAtmAddress(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisGetCurrentProcessorCounts(
@@ -437,6 +514,9 @@ NdisGetCurrentProcessorCounts(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisGetDriverHandle(
@@ -453,6 +533,9 @@ NdisGetDriverHandle(
 }
 
 
+/*
+ * @unimplemented
+ */
 PNDIS_PACKET
 EXPORT
 NdisGetReceivedPacket(
@@ -471,6 +554,9 @@ NdisGetReceivedPacket(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisGetSystemUptime(
@@ -486,21 +572,9 @@ NdisGetSystemUptime(
 }
 
 
-VOID
-EXPORT
-NdisInitializeReadWriteLock(
-    IN  PNDIS_RW_LOCK   Lock)
 /*
- * FUNCTION:
- * ARGUMENTS:
- * NOTES:
- *    NDIS 5.0
+ * @implemented
  */
-{
-    UNIMPLEMENTED
-}
-
-
 LONG
 EXPORT
 NdisInterlockedDecrement(
@@ -512,12 +586,13 @@ NdisInterlockedDecrement(
  *    NDIS 5.0
  */
 {
-    UNIMPLEMENTED
-
-    return 0;
+  return InterlockedDecrement ( Addend );
 }
 
 
+/*
+ * @implemented
+ */
 LONG
 EXPORT
 NdisInterlockedIncrement(
@@ -529,12 +604,13 @@ NdisInterlockedIncrement(
  *    NDIS 5.0
  */
 {
-    UNIMPLEMENTED
-
-    return 0;
+  return InterlockedIncrement ( Addend );
 }
 
 
+/*
+ * @implemented
+ */
 PSINGLE_LIST_ENTRY 
 EXPORT
 NdisInterlockedPopEntrySList(
@@ -547,12 +623,13 @@ NdisInterlockedPopEntrySList(
  *    NDIS 5.0
  */
 {
-    UNIMPLEMENTED
-
-    return NULL;
+  return ExInterlockedPopEntrySList ( ListHead, Lock );
 }
 
 
+/*
+ * @implemented
+ */
 PSINGLE_LIST_ENTRY 
 EXPORT
 NdisInterlockedPushEntrySList(
@@ -566,12 +643,13 @@ NdisInterlockedPushEntrySList(
  *    NDIS 5.0
  */
 {
-    UNIMPLEMENTED
-
-    return NULL;
+  return ExInterlockedPushEntrySList ( ListHead, ListEntry, Lock );
 }
 
 
+/*
+ * @unimplemented
+ */
 NDIS_STATUS
 EXPORT
 NdisMDeregisterDevice(
@@ -589,6 +667,9 @@ NdisMDeregisterDevice(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisMGetDeviceProperty(
@@ -609,6 +690,9 @@ NdisMGetDeviceProperty(
 }
 
 
+/*
+ * @unimplemented
+ */
 NDIS_STATUS
 EXPORT
 NdisMInitializeScatterGatherDma(
@@ -628,6 +712,9 @@ NdisMInitializeScatterGatherDma(
 }
 
 
+/*
+ * @unimplemented
+ */
 NDIS_STATUS
 EXPORT
 NdisMPromoteMiniport(
@@ -645,6 +732,9 @@ NdisMPromoteMiniport(
 }
 
 
+/*
+ * @unimplemented
+ */
 NDIS_STATUS
 EXPORT
 NdisMQueryAdapterInstanceName(
@@ -663,6 +753,9 @@ NdisMQueryAdapterInstanceName(
 }
 
 
+/*
+ * @unimplemented
+ */
 NDIS_STATUS
 EXPORT
 NdisMRegisterDevice(
@@ -685,6 +778,9 @@ NdisMRegisterDevice(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisMRegisterUnloadHandler(
@@ -701,6 +797,9 @@ NdisMRegisterUnloadHandler(
 }
 
 
+/*
+ * @unimplemented
+ */
 NDIS_STATUS
 EXPORT
 NdisMRemoveMiniport(
@@ -718,6 +817,9 @@ NdisMRemoveMiniport(
 }
 
 
+/*
+ * @unimplemented
+ */
 NDIS_STATUS
 EXPORT
 NdisMSetMiniportSecondary(
@@ -736,43 +838,10 @@ NdisMSetMiniportSecondary(
 }
 
 
-VOID
-EXPORT
-NdisOpenConfigurationKeyByIndex(
-    OUT PNDIS_STATUS    Status,
-    IN  NDIS_HANDLE     ConfigurationHandle,
-    IN  ULONG           Index,
-    OUT PNDIS_STRING    KeyName,
-    OUT PNDIS_HANDLE    KeyHandle)
-/*
- * FUNCTION:
- * ARGUMENTS:
- * NOTES:
- *    NDIS 5.0
- */
-{
-    UNIMPLEMENTED
-}
-
 
-VOID
-EXPORT
-NdisOpenConfigurationKeyByName(
-    OUT PNDIS_STATUS    Status,
-    IN  NDIS_HANDLE     ConfigurationHandle,
-    IN  PNDIS_STRING    SubKeyName,
-    OUT PNDIS_HANDLE    SubKeyHandle)
 /*
- * FUNCTION:
- * ARGUMENTS:
- * NOTES:
- *    NDIS 5.0
+ * @unimplemented
  */
-{
-    UNIMPLEMENTED
-}
-
-
 NDIS_STATUS
 EXPORT
 NdisQueryAdapterInstanceName(
@@ -791,6 +860,9 @@ NdisQueryAdapterInstanceName(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisQueryBufferSafe(
@@ -809,6 +881,9 @@ NdisQueryBufferSafe(
 }
 
 
+/*
+ * @unimplemented
+ */
 ULONG
 EXPORT
 NdisReadPcmciaAttributeMemory(
@@ -829,6 +904,9 @@ NdisReadPcmciaAttributeMemory(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisReleaseReadWriteLock(
@@ -844,30 +922,9 @@ NdisReleaseReadWriteLock(
     UNIMPLEMENTED
 }
 
-
-NDIS_STATUS
-EXPORT
-NdisWriteEventLogEntry(
-    IN  PVOID       LogHandle,
-    IN  NDIS_STATUS EventCode,
-    IN  ULONG       UniqueEventValue,
-    IN  USHORT      NumStrings,
-    IN  PVOID       StringsList OPTIONAL,
-    IN  ULONG       DataSize,
-    IN  PVOID       Data        OPTIONAL)
 /*
- * FUNCTION:
- * ARGUMENTS:
- * NOTES:
- *    NDIS 5.0
+ * @unimplemented
  */
-{
-    UNIMPLEMENTED
-
-    return NDIS_STATUS_FAILURE;
-}
-
-
 ULONG
 EXPORT
 NdisWritePcmciaAttributeMemory(
@@ -890,6 +947,9 @@ NdisWritePcmciaAttributeMemory(
 
 /* NDIS 5.0 extensions for intermediate drivers */
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisIMAssociateMiniport(
@@ -906,6 +966,9 @@ NdisIMAssociateMiniport(
 }
 
 
+/*
+ * @unimplemented
+ */
 NDIS_STATUS 
 EXPORT
 NdisIMCancelInitializeDeviceInstance(
@@ -924,6 +987,9 @@ NdisIMCancelInitializeDeviceInstance(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisIMCopySendCompletePerPacketInfo(
@@ -940,6 +1006,9 @@ NdisIMCopySendCompletePerPacketInfo(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisIMCopySendPerPacketInfo(
@@ -956,6 +1025,9 @@ NdisIMCopySendPerPacketInfo(
 }
 
 
+/*
+ * @unimplemented
+ */
 VOID
 EXPORT
 NdisIMDeregisterLayeredMiniport(
@@ -971,6 +1043,9 @@ NdisIMDeregisterLayeredMiniport(
 }
 
 
+/*
+ * @unimplemented
+ */
 NDIS_HANDLE
 EXPORT
 NdisIMGetBindingContext(
@@ -988,6 +1063,9 @@ NdisIMGetBindingContext(
 }
 
 
+/*
+ * @unimplemented
+ */
 NDIS_HANDLE
 EXPORT
 NdisIMGetDeviceContext(
@@ -1005,6 +1083,9 @@ NdisIMGetDeviceContext(
 }
 
 
+/*
+ * @unimplemented
+ */
 NDIS_STATUS
 EXPORT
 NdisIMInitializeDeviceInstanceEx(