[ros-diffs] [cgutman] 41037: - Implement NdisReadEisaSlotInformation

cgutman at svn.reactos.org cgutman at svn.reactos.org
Fri May 22 02:42:53 CEST 2009


Author: cgutman
Date: Fri May 22 04:42:51 2009
New Revision: 41037

URL: http://svn.reactos.org/svn/reactos?rev=41037&view=rev
Log:
 - Implement NdisReadEisaSlotInformation

Modified:
    trunk/reactos/drivers/network/ndis/ndis/40stubs.c
    trunk/reactos/drivers/network/ndis/ndis/hardware.c

Modified: trunk/reactos/drivers/network/ndis/ndis/40stubs.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/ndis/ndis/40stubs.c?rev=41037&r1=41036&r2=41037&view=diff
==============================================================================
--- trunk/reactos/drivers/network/ndis/ndis/40stubs.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/network/ndis/ndis/40stubs.c [iso-8859-1] Fri May 22 04:42:51 2009
@@ -336,22 +336,6 @@
 }
 
 
-
-/*
- * @unimplemented
- */
-VOID
-EXPORT
-NdisReadEisaSlotInformation(
-    OUT PNDIS_STATUS                    Status,
-    IN  NDIS_HANDLE                     WrapperConfigurationContext,
-    OUT PUINT                           SlotNumber,
-    OUT PNDIS_EISA_FUNCTION_INFORMATION EisaData)
-{
-    UNIMPLEMENTED
-}
-
-
 /*
  * @unimplemented
  */

Modified: trunk/reactos/drivers/network/ndis/ndis/hardware.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/ndis/ndis/hardware.c?rev=41037&r1=41036&r2=41037&view=diff
==============================================================================
--- trunk/reactos/drivers/network/ndis/ndis/hardware.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/network/ndis/ndis/hardware.c [iso-8859-1] Fri May 22 04:42:51 2009
@@ -194,4 +194,48 @@
                                Buffer, Offset, Length);
 }
 
+
+/*
+ * @implemented
+ */
+VOID
+EXPORT
+NdisReadEisaSlotInformation(
+    OUT PNDIS_STATUS                    Status,
+    IN  NDIS_HANDLE                     WrapperConfigurationContext,
+    OUT PUINT                           SlotNumber,
+    OUT PNDIS_EISA_FUNCTION_INFORMATION EisaData)
+{
+    PNDIS_WRAPPER_CONTEXT Wrapper = WrapperConfigurationContext;
+    ULONG Ret;
+    PVOID Buffer;
+
+    /* We are called only at PASSIVE_LEVEL */
+    Buffer = ExAllocatePool(PagedPool, sizeof(NDIS_EISA_FUNCTION_INFORMATION));
+    if (!Buffer) {
+        *Status = NDIS_STATUS_RESOURCES;
+        return;
+    }
+
+    Ret = HalGetBusData(EisaConfiguration,
+                        Wrapper->BusNumber,
+                        Wrapper->SlotNumber,
+                        Buffer,
+                        sizeof(NDIS_EISA_FUNCTION_INFORMATION));
+
+    if (Ret == 0 || Ret == 2) {
+        ExFreePool(Buffer);
+        *Status = NDIS_STATUS_FAILURE;
+        return;
+    }
+
+    *SlotNumber = Wrapper->SlotNumber;
+
+    RtlCopyMemory(EisaData, Buffer, sizeof(NDIS_EISA_FUNCTION_INFORMATION));
+
+    ExFreePool(Buffer);
+
+    *Status = NDIS_STATUS_SUCCESS;
+}
+
 /* EOF */



More information about the Ros-diffs mailing list