怎么选择指定的网卡发包

如何选择指定的网卡发包?
如何从指定的网卡发包?

希望给出范例,谢谢!

------解决方案--------------------
typedef struct _MIB_IFROW
{
WCHAR wszName[MAX_INTERFACE_NAME_LEN];
DWORD dwIndex;
DWORD dwType;
DWORD dwMtu;
DWORD dwSpeed;
DWORD dwPhysAddrLen;
BYTE bPhysAddr[MAXLEN_PHYSADDR];
DWORD dwAdminStatus;
DWORD dwOperStatus;
DWORD dwLastChange;
DWORD dwInOctets;
DWORD dwInUcastPkts;
DWORD dwInNUcastPkts;
DWORD dwInDiscards;
DWORD dwInErrors;
DWORD dwInUnknownProtos;
DWORD dwOutOctets;
DWORD dwOutUcastPkts;
DWORD dwOutNUcastPkts;
DWORD dwOutDiscards;
DWORD dwOutErrors;
DWORD dwOutQLen;
DWORD dwDescrLen;
BYTE bDescr[MAXLEN_IFDESCR];
} MIB_IFROW,*PMIB_IFROW;

typedef struct _MIB_IFTABLE
{
DWORD dwNumEntries;
MIB_IFROW table[ANY_SIZE];
} MIB_IFTABLE, *PMIB_IFTABLE;

typedef DWORD (__stdcall *GIT)(PMIB_IFTABLE, PULONG, BOOL);
------解决方案--------------------
HINSTANCE dll = LoadLibrary( "iphlpapi.dll ");
GIT GetIfTable = (GIT)GetProcAddress(_dll, "GetIfTable ");
DWORD table_size = 0;
int ret = _GetIfTable(_mit, &table_size, true);
if(ret == ERROR_INSUFFICIENT_BUFFER)
{
char * buffer = new char[table_size];
::memset(buffer,0,table_size);

PMIB_IFTABLE mit = (PMIB_IFTABLE) buffer;

ret = GetIfTable(mit, &table_size, true);
if (ret == NO_ERROR)
{
//mit为所求
}
}