Compartir a través de


Uso de un índice de NET_LUID

NDIS proporciona funciones para asignar y liberar los índices de NET_LUID necesarios para crear valores NET_LUID. Un proveedor de interfaz NDIS debe asignar un valor de NET_LUID para registrar una interfaz.

Para asignar un índice de NET_LUID, un proveedor de interfaz llama a la función NdisIfAllocateNetLuidIndex . Después de asignar el índice, el proveedor de interfaz llama a la macro NDIS_MAKE_NET_LUID para compilar el valor de NET_LUID. Para liberar un índice de NET_LUID, un proveedor de interfaz llama a la función NdisIfFreeNetLuidIndex .

NdisIfAllocateNetLuidIndex intenta asignar un valor de 24 bits asociado al tipo de interfaz especificado en el parámetro IfType y que es único para el equipo local. Si la asignación de índices se realiza correctamente, NdisIfAllocateNetLuidIndex devuelve NDIS_STATUS_SUCCESS y proporciona un índice NET_LUID en la dirección que se proporciona en el parámetro pNetLuidIndex . Si NDIS no puede encontrar un índice de NET_LUID gratuito, NdisIfAllocateNetLuidIndex devuelve NDIS_STATUS_RESOURCES. NdisIfAllocateNetLuidIndex puede devolver otros valores de estado NDIS para indicar errores internos dentro de NDIS. NDIS registra la asignación de este índice para cuando el equipo se reinicia posteriormente. NDIS no usará un índice determinado para futuros autores de llamadas, incluso después de reiniciar el equipo, hasta que el proveedor de interfaz que asignó ese índice llame a la función NdisIfFreeNetLuidIndex para ese índice.

NdisIfFreeNetLuidIndex libera un índice de NET_LUID asignado previamente para que NDIS pueda reasignar ese índice a otra interfaz. El llamador debe pasar el mismo tipo de interfaz en IfType que el autor de la llamada usó cuando llamó a NdisIfAllocateNetLuidIndex para asignar el índice NET_LUID. Si la operación gratuita se realiza correctamente, NdisIfFreeNetLuidIndex devuelve NDIS_STATUS_SUCCESS. Si se produce un error en la llamada a NdisIfFreeNetLuidIndex , el proveedor de interfaz debe quitar cualquier información que guarde en el almacenamiento persistente relacionado con el índice de NET_LUID. Al quitar la información, se asegurará de que el proveedor no siga intentando liberar un índice que ya esté libre después de reiniciar cada equipo. Después de llamar a NdisIfFreeNetLuidIndex, el autor de la llamada no debe usar de nuevo el valor de NET_LUID a menos que llame a NdisIfAllocateNetLuidIndex de nuevo para el mismo tipo de interfaz y recibe el mismo índice NET_LUID que liberó.

Para registrar una interfaz de red, un proveedor de interfaz debe pasar un valor de NET_LUID válido a la función NdisIfRegisterInterface . Para obtener más información sobre cómo registrar interfaces de red, consulte Registro de una interfaz de red.