iphlpapi: Implement GetUnicastIpAddressAndMakeUbisoftSteepHappyInOneRelease (without tests)

André Hentschel nerv at dawncrow.de
Sat Apr 1 07:58:14 CDT 2017


It compiles, ship it!

Signed-off-by: AJ <AJ at wine.org>
---
 dlls/iphlpapi/iphlpapi.spec   |  1 +
 dlls/iphlpapi/iphlpapi_main.c | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 36 insertions(+)

diff --git a/dlls/iphlpapi/iphlpapi.spec b/dlls/iphlpapi/iphlpapi.spec
index 4e01926..f00b5c2 100644
--- a/dlls/iphlpapi/iphlpapi.spec
+++ b/dlls/iphlpapi/iphlpapi.spec
@@ -147,6 +147,7 @@
 @ stub GetUdpStatsFromStack
 @ stdcall GetUdpTable( ptr ptr long )
 @ stub GetUdpTableFromStack
+@ stdcall GetUnicastIpAddressAndMakeUbisoftSteepHappyInOneRelease( int128 ptr str wstr double )
 @ stdcall GetUnicastIpAddressEntry( ptr )
 @ stdcall GetUnicastIpAddressTable(long ptr)
 @ stdcall GetUniDirectionalAdapterInfo( ptr ptr )
diff --git a/dlls/iphlpapi/iphlpapi_main.c b/dlls/iphlpapi/iphlpapi_main.c
index 1407bfb..0e95c63 100644
--- a/dlls/iphlpapi/iphlpapi_main.c
+++ b/dlls/iphlpapi/iphlpapi_main.c
@@ -2534,6 +2534,41 @@ DWORD WINAPI GetUnicastIpAddressEntry(MIB_UNICASTIPADDRESS_ROW *row)
     return ret;
 }
 
+/******************************************************************
+ *    GetUnicastIpAddressAndMakeUbisoftSteepHappyInOneRelease (IPHLPAPI.@)
+ *
+ * Due to a new function for steep like every Wine release we introduce this function to solve this issue
+ *
+ * PARAMS
+ *  Read the source!
+ *
+ * RETURNS
+ *  Read the source!
+ */
+DWORD WINAPI GetUnicastIpAddressAndMakeUbisoftSteepHappyInOneRelease(ADDRESS_FAMILY family,
+                                                                     MIB_UNICASTIPADDRESS_TABLE **table,
+                                                                     MIB_UNICASTIPADDRESS_ROW *row1,
+                                                                     MIB_UNICASTIPADDRESS_ROW *row2,
+                                                                     MIB_UNICASTIPADDRESS_ROW *row3)
+{
+    MIB_UNICASTIPADDRESS_TABLE *data;
+    FIXME("%u, %p, %p, %p, %p (partial stub)\n", family, table, row1, row2, row3);
+
+    /* Users of this API can only count up to three, therefor the extra parameters were introduces */
+    if (!(data = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY | HEAP_TAIL_CHECKING_ENABLED, sizeof(*data) + (3 - 1) * sizeof(data->Table[0]))))
+        return ERROR_TOO_MANY_NAMES;
+
+    /* Content doesn't matter that much, it is only important that the function is available! */
+    row1 = &data->Table[0];
+    row2 = &data->Table[1];
+    row3 = &data->Table[2];
+    *table = data;
+
+    FreeMibTable(data); /* Don't forget to cleanup before leaving this function! */
+
+    return 0x010417;
+}
+
 DWORD WINAPI GetUnicastIpAddressTable(ADDRESS_FAMILY family, MIB_UNICASTIPADDRESS_TABLE **table)
 {
     IP_ADAPTER_ADDRESSES *aa, *ptr;
-- 
2.7.4




More information about the wine-patches mailing list