Función NdisIfRegisterInterface (ndis.h)
La función NdisIfRegisterInterface registra una interfaz de red NDIS.
Sintaxis
NDIS_STATUS NdisIfRegisterInterface(
[in] NDIS_HANDLE NdisProviderHandle,
[in] NET_LUID NetLuid,
[in] NDIS_HANDLE ProviderIfContext,
[in] PNET_IF_INFORMATION pIfInfo,
PNET_IFINDEX pfIndex
);
Parámetros
[in] NdisProviderHandle
Identificador que identifica el proveedor de interfaz de red que registra la interfaz. El autor de la llamada obtuvo este identificador de una llamada anterior a . función NdisIfRegisterProvider.
[in] NetLuid
Valor de NET_LUID proporcionado por el autor de la llamada que está asociado a la interfaz . El proveedor de interfaz usó la macro NDIS_MAKE_NET_LUID para crear este valor NET_LUID. El proveedor de interfaz debe recuperar el valor de NET_LUID del almacenamiento persistente después de reiniciar el equipo y proporcionar el mismo valor NET_LUID cada vez que registra una interfaz determinada.
[in] ProviderIfContext
Identificador de un área de contexto asignada por el autor de la llamada asociada a la interfaz. NDIS pasa este identificador a las funciones de devolución de llamada que el autor de la llamada registró con NdisIfRegisterProvider.
[in] pIfInfo
Puntero a una estructura de NET_IF_INFORMATION asignada por el autor de la llamada que proporciona información sobre la interfaz. Esta estructura contiene información que permanece constante mientras existe la interfaz.
pfIndex
Puntero a una variable de índice de interfaz proporcionada por el autor de la llamada. Si NDIS registra correctamente una interfaz, NDIS asigna un índice de interfaz para esa interfaz y establece el valor en pIfIndex . El índice de interfaz es un valor de 24 bits que es único en el equipo local. Es posible que NDIS no devuelva el mismo índice de interfaz cada vez que un proveedor registra una interfaz con el mismo valor de NET_LUID . El valor de índice de interfaz cero está reservado y NDIS no lo asigna a ninguna interfaz. No confunda el índice de interfaz con un índice de NET_LUID.
Valor devuelto
NdisIfRegisterInterface devuelve uno de los siguientes valores de estado:
Código devuelto | Descripción |
---|---|
|
La operación se completó correctamente. |
|
Error en la operación debido a recursos insuficientes. |
|
error de NdisIfRegisterInterface porque algunos de los parámetros de entrada no son válidos. |
|
error NdisIfRegisterInterface porque ya hay una interfaz registrada con el mismo valor NET_LUID que el parámetro NetLuid especificó. |
Observaciones
Los proveedores de interfaz NDIS llaman a la función NdisIfRegisterInterface para registrar una interfaz de red. Una llamada a esta función no implica que la interfaz esté activa.
Cada vez que se reinicia un equipo, NDIS comienza con una lista vacía de interfaces de red registradas. Un proveedor de interfaz llama a la función NdisIfRegisterInterface cada vez que se inicia una interfaz (o se detecta) y la interfaz.
NET_LUID se conoce.
El método para detectar o iniciar una interfaz depende de la aplicación. Por ejemplo, si un controlador intermedio LBFO MUX es un proveedor de interfaz, ese controlador podría registrar una interfaz interna cuando NDIS llama a la función ProtocolBindAdapterEx del controlador para el primer adaptador de miniport subyacente.
Un proveedor de interfaz puede colocar información sobre una interfaz en el almacenamiento persistente y restaurar la interfaz según sea necesario para la aplicación determinada. Por ejemplo, el proveedor puede almacenar información adicional sobre la interfaz con el NET_LUID y puede volver a registrar la interfaz después de reiniciar el equipo.
Si NdisIfRegisterInterface se realiza correctamente, NDIS agrega la interfaz a la lista de interfaces conocidas y asigna un nuevo índice de interfaz para esta interfaz. Los proveedores de interfaz deben registrar interfaces habilitadas y deshabilitadas siempre que sea posible. Todas las interfaces habilitadas deben registrarse.
Es posible que NDIS no devuelva el mismo índice de interfaz cada vez que un proveedor registra una interfaz con el mismo valor de NET_LUID. Por ejemplo, NDIS no asigna necesariamente el mismo índice de interfaz cuando se vuelve a registrar una interfaz después de reiniciar un equipo o cuando se anula el registro y se vuelve a registrar la interfaz. El valor de índice de interfaz cero está reservado y NDIS no lo asigna a ninguna interfaz.
Para indicar que se debe quitar una interfaz de la lista de interfaces conocidas en el equipo, un proveedor de interfaz llama a . función NdisIfDeregisterInterface, por ejemplo, porque se ha desinstalado la interfaz. .
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Se admite en NDIS 6.0 y versiones posteriores. |
de la plataforma de destino de | Escritorio |
encabezado de | ndis.h (incluya Ndis.h) |
biblioteca de | Ndis.lib |
irQL | PASSIVE_LEVEL |
reglas de cumplimiento de DDI | Irql_Interfaces_Function(ndis) |