Función GetIfTable2Ex
La función GetIfTable2Ex recupera la tabla de interfaz MIB-II, dada un nivel de información de interfaz que se va a recuperar.
Sintaxis
NETIOAPI_API GetIfTable2Ex(
_In_ MIB_IF_TABLE_LEVEL Level,
_Out_ PMIB_IF_TABLE2 *Table
);
Parámetros
Nivel [in]
Nivel de información de interfaz que se va a recuperar. Este parámetro puede ser uno de los valores de la enumeración MIB_IF_TABLE_LEVEL .Tabla [salida]
Puntero a un búfer que recibe la tabla de interfaces en una estructura de MIB_IF_TABLE2 .
Valor devuelto
GetIfTable2Ex devuelve STATUS_SUCCESS si la función se realiza correctamente.
Si se produce un error en la función, GetIfTable2Ex devuelve uno de los siguientes códigos de error:
Código devuelto | Descripción |
---|---|
STATUS_INVALID_PARAMETER | Se pasó un parámetro no válido a la función. Este error se devuelve si se pasó un valor no válido en el parámetro Level . |
STATUS_NOT_ENOUGH_MEMORY | Los recursos de memoria insuficientes están disponibles para completar la operación. |
Otros | Use la función FormatMessage para obtener la cadena de mensaje para el error devuelto. |
Observaciones
La función GetIfTable2Ex enumera las interfaces lógicas y físicas de un equipo local y devuelve esta información en una estructura de MIB_IF_TABLE2 .
El controlador puede usar una función similar, GetIfTable2, para recuperar interfaces, pero GetIfTable2 no permite que el controlador especifique el nivel de interfaces que se va a devolver. Una llamada a la función GetIfTable2Ex con el parámetro Level establecido en MibIfTableNormal recupera los mismos resultados que llamar a la función GetIfTable2 .
GetIfTable2Ex devuelve interfaces en una estructura de MIB_IF_TABLE2 en el búfer al que apunta el parámetro Table . La estructura MIB_IF_TABLE2 contiene un recuento de interfaces y una matriz de estructuras de MIB_IF_ROW2 para cada interfaz. GetIfTable2 asigna mmory para la estructura de MIB_IF_TABLE2 y las entradas MIB_IF_ROW2 de esta estructura. Cuando estas estructuras devueltas ya no son necesarias, el controlador debe liberar la memoria llamando a FreeMibTable.
Todas las interfaces, incluidas las interfaces de controlador intermedio NDIS y las interfaces de controlador de filtro NDIS, se devuelven para cualquiera de los valores posibles para el parámetro Level . La configuración del parámetro Level afecta a cómo se devuelven las estadísticas y los miembros de estado de la estructura de MIB_IF_ROW2 en la estructura MIB_IF_TABLE2 a la que apunta el parámetro Table de la interfaz. Por ejemplo, una tarjeta de interfaz de red (NIC) tiene un controlador de miniporte NDIS. Se puede instalar un controlador intermedio NDIS para interactuar entre los controladores de protocolo de nivel superior y los controladores de miniporte NDIS. Un controlador de filtro NDIS se puede conectar sobre el controlador intermedio NDIS. Supongamos que la NIC informa al miembro MediaConnectState de la estructura de MIB_IF_ROW2 como MediaConnectStateConnected, pero el controlador de filtro NDIS modifica el estado e informa del estado como MediaConnectStateDisconnected. Cuando se consulta la información de la interfaz con el parámetro Level establecido en MibIfTableNormal, se notifica el estado de la parte superior de la pila de filtros (MediaConnectStateDisconnected). Cuando se consulta la interfaz con el parámetro Level establecido en MibIfTableRaw, se devuelve el estado en el nivel de interfaz (MediaConnectStateConnected).
Tenga en cuenta que la estructura de MIB_IF_TABLE2 devuelta a la que apunta el parámetro Table podría contener relleno para la alineación entre el miembro NumEntries y la primera entrada de matriz MIB_IF_ROW2 en el miembro Table de la estructura MIB_IF_TABLE2. El relleno para la alineación también puede estar presente entre las entradas de matriz de MIB_IF_ROW2. Cualquier acceso a una entrada de matriz de MIB_IF_ROW2 debe suponer que puede existir relleno.
Requisitos
Plataforma de destino |
Universal |
Versión |
Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows. |
Encabezado |
Netioapi.h (incluya Netioapi.h) |
Biblioteca |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |