Я пытался сделать динамическую загрузку 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
TL; DR
Функций нету до Win8. Версия Win8 (я проверял версию 6.2.9200.16433) не делает ничего полезного. Кажется безопасным игнорировать эти функции, если они отсутствуют в dhcpcsvc6.DLL
,
Объяснение:
The procedure entry point Dhcpv6CApiInitialize could not be located in the dynamic link library dhcpcsvc6.DLL
, Это означает, что функции действительно экспортируются из dhcpcsvc6.DLL
,_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
Других решений пока нет …