Even with the 0.007-fixed version of Win32::IPHelper, calling
GetAdaptersInfo() in any way crashes Perl on a 64-bit Windows 2008 R2
system. Suspect another 64-bit value in there that's being treated as
32-bit.
Using ActivePerl 5.12.4Build 1205 (64-bit) - claims to be built for
MSWin32-x64-multi-thread
The following event is produced in the Win event log:
--------------
Faulting application name: perl.exe, version: 5.12.4.1205, time stamp:
0x4dfff767
Faulting module name: Iphlpapi.DLL, version: 6.1.7601.17514, time
stamp: 0x4ce7c6da
Exception code: 0xc0000005
Fault offset: 0x000000000000679c
Faulting process id: 0x1278
Faulting application start time: 0x01cc90089e35983a
Faulting application path: C:\Perl64\bin\perl.exe
Faulting module path: C:\Windows\system32\Iphlpapi.DLL
Report Id: dc844372-fbfb-11e0-a231-005056970063
--------------
Example minimum code to reproduce:
use Win32;
use Win32::IPHelper;
my @ip_adapter_info;
my $status = Win32::IPHelper::GetAdaptersInfo(\@ip_adapter_info);
die sprintf("GetAdaptersInfo() error %u: %s\n",
$status,Win32::FormatMessage($status)) unless ($status);