比如,有两张网卡,一张启用,一张禁用,如何获取被禁用的网卡的信息,如网卡MAC,网卡名称等。GetAdaptersInfo不能读取被禁用的网卡的信息向大家赐教

解决方案 »

  1.   

    有结果了,被禁用的网卡,可以通过API函数DeviceIoControl函数配合IOCTL_NDIS_GET_ADAPTER_NAMES获取。
    // 读取网络接口设备的名字,不仅仅包括网卡,还包括其它诸如拨号接口
    hNdis = CreateFile(DD_NDIS_DEVICE_NAME, GENERIC_READ | GENERIC_WRITE,
    FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_ALWAYS,
    0, NULL);

    if(INVALID_HANDLE_VALUE != hNdis)
    {
    fResult = DeviceIoControl(hNdis, IOCTL_NDIS_GET_ADAPTER_NAMES, NULL, 0,
    szAdapterNames, cbAdapterNames,
    &cbAdapterNames, NULL);
    CloseHandle(hNdis);
    }