- program for win32 by Don Becker that lists the NIC id's that WinPCap

recognizes.  This tells you what to type into the ethdev field in your
  bochsrc.
This commit is contained in:
Bryce Denney 2001-10-03 13:36:14 +00:00
parent 91c3513cae
commit f1a5e26f7d

93
bochs/misc/niclist.c Normal file
View File

@ -0,0 +1,93 @@
/////////////////////////////////////////////////////////////////////////
//
// misc/niclist.c
// by Don Becker <x-odus@iname.com>
// $Id: niclist.c,v 1.1 2001-10-03 13:36:14 bdenney Exp $
//
// This program is for win32 only. It lists the network interface cards
// that you can use in the "ethdev" field of the ne2k line in your bochsrc.
//
// For this program and for win32 ethernet, the winpcap library is required.
// Download it from http://netgroup-serv.polito.it/winpcap.
//
/////////////////////////////////////////////////////////////////////////
#include <windows.h>
#include <stdio.h>
BOOLEAN (*PacketGetAdapterNames) (PTSTR, PULONG);
int main(int argc, char **argv)
{
int i = 0;
WCHAR AdapterNameW[512];
char AdapterNameA[512];
int AdapterNum = 0;
ULONG AdapterLength;
HINSTANCE hPacket;
DWORD dwVersion, dwMajorVersion;
char AdapterList[10][1024];
WCHAR *tempW, *tempW2;
char *tempA, *tempA2;
hPacket = LoadLibrary("PACKET.DLL");
if(hPacket) {
PacketGetAdapterNames = (BOOLEAN (*)(PTSTR, PULONG)) GetProcAddress(hPacket, "PacketGetAdapterNames");
} else {
printf("Could not load WinPCap driver!\n");
return 1;
}
dwVersion = GetVersion();
dwMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion)));
if (!(dwVersion >= 0x80000000 && dwMajorVersion >= 4))
{ // Windows NT
PacketGetAdapterNames((char *)AdapterNameW,&AdapterLength);
tempW = AdapterNameW;
tempW2 = AdapterNameW;
while ((*tempW!='\0')||(*(tempW-1)!='\0'))
{
if (*tempW=='\0')
{
memcpy(AdapterList[i],tempW2,(tempW-tempW2)*2);
tempW2=tempW+1;
i++;
}
tempW++;
}
AdapterNum=i;
for (i=0;i<AdapterNum;i++)
wprintf(L"\n%d.) %s\n",i+1,AdapterList[i]);
printf("\n");
}
else //windows 95
{
PacketGetAdapterNames(AdapterNameA,&AdapterLength);
tempA = AdapterNameA;
tempA2 = AdapterNameA;
while ((*tempA!='\0')||(*(tempA-1)!='\0'))
{
if (*tempA=='\0')
{
memcpy(AdapterList[i],tempA2,tempA-tempA2);
tempA2=tempA+1;
i++;
}
tempA++;
}
AdapterNum=i;
for (i=0;i<AdapterNum;i++)
printf("\n%d.) %s\n",i+1,AdapterList[i]);
printf("\n");
}
return 0;
}