• Sábado 14 de Diciembre de 2024, 22:31

Autor Tema:  Packetgetadapternames  (Leído 1004 veces)

Wikiflo

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Packetgetadapternames
« en: Jueves 23 de Septiembre de 2004, 12:50 »
0
Hola, estoy haciendo un programilla que muestra los adaptadores de red que hay instalados en la máquina. Para ello utilizo la funcion PacketGetAdapterNames que te da un buffer con los nombres y las descripciones de los adaptadores. LA funcion es tal que asi:

void __fastcall CAdaptador::ObtenerListaAdaptadores()
{
    DWORD Version,VersionM;
    char NombreAdaptador[1024];
    WCHAR NombreAdaptadorNT[1024];
    ULONG LongAdaptador=1024;
    WCHAR *temp, *temp1;
    char  *tempa, *temp1a;
    WCHAR ListaAdaptadoresNT[MaxNumAdaptadores][1024];

        Version=GetVersion();
        VersionM =  (DWORD)(LOBYTE(LOWORD(Version)));
        if (!(Version >= 0x80000000 && VersionM >= 4)) { // Windows NT/2000/XP
                PacketGetAdapterNames((PTSTR) NombreAdaptadorNT,&LongAdaptador);
                temp=NombreAdaptadorNT;
                temp1=NombreAdaptadorNT;
     while ((*temp!='\0')||(*(temp-1)!='\0')) {
   if (*temp=='\0') {
      memcpy(ListaAdaptadoresNT[NumAdaptadores],temp1,(temp-temp1)*2);
          WideToAsc((WCHAR *)ListaAdaptadoresNT[NumAdaptadores], ListaAdaptadores[NumAdaptadores]); // Convierte a ASCII string
     temp1=temp+1;
     NumAdaptadores++;
        }
   temp++;
     }
     SistemaNT = true;

  } else {  // Windows 95/98/ME
    PacketGetAdapterNames((PTSTR)NombreAdaptador,&LongAdaptador);
     tempa=NombreAdaptador;
     temp1a=NombreAdaptador;
     while ((*tempa!='\0')||(*(tempa-1)!='\0'))   {
   if (*tempa=='\0') {
     memcpy(ListaAdaptadores[NumAdaptadores],temp1a,tempa-temp1a);
     temp1a=tempa+1;
     NumAdaptadores++;
        }
   tempa++;
     }
     SistemaNT = false;
  }
}

lo que pasa es que al listarlos me sale "\\Device\\..." en un formato que no es muy
comprensible y quiero la descripcion (que saldria algo asi como "Etherlink model..."
) que sé que está en el buffer. ¿Cómo podría sacarlo?
Saludos.