Где находится Dhcpv6CApiInitialize?

Я пытался сделать динамическую загрузку dhcpcsvc6.dll для поддержки ipv6 на win7 и ipv4 на xp. Но GetProcAddress Dhcpv6CApiInitialize всегда терпит неудачу. Так что я использовал exescope для изучения экспорта DLL, это то, что я получил.

Version: 6.1.7600.16385.

00000001    404632EA    Dhcpv6AcquireParameters
00000002    40463E4F    Dhcpv6CancelOperation
00000003    40463EB9    Dhcpv6EnableTracing
00000004    40461D3B    Dhcpv6FreeLeaseInfo
00000005    404644D3    Dhcpv6GetTraceArray
00000006    404645D9    Dhcpv6GetUserClasses
00000007    404642D1    Dhcpv6IsEnabled
00000008    40461730    Dhcpv6QueryLeaseInfo
00000009    40463419    Dhcpv6ReleaseParameters
0000000A    40463E31    Dhcpv6ReleasePrefix
0000000B    40463BF5    Dhcpv6ReleasePrefixEx
0000000C    40463BD1    Dhcpv6RenewPrefix
0000000D    40463892    Dhcpv6RenewPrefixEx
0000000E    40463F51    Dhcpv6RequestParams
0000000F    40463871    Dhcpv6RequestPrefix
00000010    40463549    Dhcpv6RequestPrefixEx
00000011    404647D1    Dhcpv6SetUserClass

Dhcpv6CApiInitialize не в этом. Я также попробовал dhcpcore6.dll, dhcpsvc.dll и 64-битные версии этих .. никаких результатов.

Интересно, где эта функция на самом деле? Я действительно должен назвать это прежде, чем любой другой API dhcp v6?

Ссылка MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/aa363306(v=vs.85).aspx

0

Решение

TL; DR

Функций нету до Win8. Версия Win8 (я проверял версию 6.2.9200.16433) не делает ничего полезного. Кажется безопасным игнорировать эти функции, если они отсутствуют в dhcpcsvc6.DLL,

Объяснение:

  1. Статическое связывание требует Win8 SDK (уже встроен в VS2012).
  2. VS2010 с Win7 SDK не скомпилируется.
  3. При компиляции с Win8 SDK скомпилированный exe не будет работать на Win7, говоря The procedure entry point Dhcpv6CApiInitialize could not be located in the dynamic link library dhcpcsvc6.DLL, Это означает, что функции действительно экспортируются из dhcpcsvc6.DLL,
  4. Версия DLL для Win8 содержит эти функции.

_Dhcpv6CApiInitialize@4 по сути, просто помещает 2 в выходной параметр:

10004199: mov         edi,edi                // Standard Hotpatch spot
1000419B: push        ebp                    // Standard Prologue
1000419C: mov         ebp,esp                // Standard Prologue
1000419E: mov         eax,dword ptr [ebp+8]  // eax <- param0
100041A1: test        eax,eax                // if (param0 == 0)
100041A3: je          100041AB               //    return;
100041A5: mov         dword ptr [eax],2      // *param0 = 2;
100041AB: pop         ebp                    // Standard epilogue
100041AC: ret         4                      // end of function

_Dhcpv6CApiCleanup@0 вообще ничего не делает

100041B6: ret
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]