Función NdisMRegisterMiniportDriver (ndis.h)

Un controlador de miniport llama a la función NdisMRegisterMiniportDriver para registrar puntos de entrada MiniportXxx con NDIS como primer paso en la inicialización.

Sintaxis

NDIS_STATUS NdisMRegisterMiniportDriver(
  [in]           PDRIVER_OBJECT                        DriverObject,
  [in]           PUNICODE_STRING                       RegistryPath,
  [in, optional] NDIS_HANDLE                           MiniportDriverContext,
  [in]           PNDIS_MINIPORT_DRIVER_CHARACTERISTICS MiniportDriverCharacteristics,
  [out]          PNDIS_HANDLE                          NdisMiniportDriverHandle
);

Parámetros

[in] DriverObject

Puntero a un objeto de controlador opaco que el controlador de miniporte recibió en su rutina DriverEntry en el parámetro Argument1 (consulte DriverEntry of NDIS Miniport Drivers).

[in] RegistryPath

Puntero a una ruta de acceso del Registro opaca que el controlador de miniporte recibió en su rutina DriverEntry en el parámetro Argument2 .

[in, optional] MiniportDriverContext

Identificador de un área de contexto asignada por el controlador en la que el controlador mantiene la información de estado y configuración.

[in] MiniportDriverCharacteristics

Puntero a un NDIS_MINIPORT_DRIVER_CHARACTERISTICS estructura que inicializó el autor de la llamada.

[out] NdisMiniportDriverHandle

Puntero a una variable de identificador proporcionada por el autor de la llamada. NDIS escribe un identificador en esta variable que identifica de forma única este controlador. El controlador debe guardar este identificador para su uso en las llamadas de función de NdisXxx posteriores.

Valor devuelto

NdisMRegisterMiniportDriver devuelve uno de los siguientes valores de estado:

Código devuelto Descripción
NDIS_STATUS_SUCCESS

NdisMRegisterMiniportDriver registró correctamente el controlador de miniport.

NDIS_STATUS_BAD_CHARACTERISTICS
El parámetro CharacteristicsLength es incorrecto para la versión NDIS especificada en el miembro MajorNdisVersion de la estructura en MiniportDriverCharacteristics .
NDIS_STATUS_BAD_VERSION
MajorNdisVersion o MinorNdisVersion especificados en la estructura de características no son válidos.
NDIS_STATUS_RESOURCES
Una escasez de recursos, posiblemente memoria, impedía que NDIS registrara el autor de la llamada.
NDIS_STATUS_FAILURE
Se trata de un estado de error predeterminado, devuelto cuando ninguno de los errores anteriores provocó un error en el registro.

Comentarios

Un controlador NDIS llama a NdisMRegisterMiniportDriver desde su rutina DriverEntry . Para obtener más información, vea DriverEntry of NDIS Miniport Drivers.

Cada controlador de minipuerto exporta un conjunto de funciones MiniportXxx estándar configurando la estructura de características y llamando a NdisMRegisterMiniportDriver. NDIS copia la estructura de características en el almacenamiento interno de NDIS. Por lo tanto, una vez registrado, un controlador no puede cambiar sus puntos de entrada MiniportXxx .

Para registrar su interfaz de minipuerto virtual, los controladores intermedios NDIS deben llamar a NdisMRegisterMiniportDriver con la marca NDIS_INTERMEDIATE_DRIVER establecida en la estructura en MiniportDriverCharacteristics . Los controladores NDIS que tienen un borde inferior de WDM deben llamar a NdisMRegisterMiniportDriver con la marca NDIS_WDM_DRIVER establecida en la estructura en MiniportDriverCharacteristics .

Los controladores pueden registrarse como un controlador de miniporte combinado y un controlador intermedio. Para registrar su controlador de minipuerto físico, un controlador intermedio de miniport llama a NdisMRegisterMiniportDriver con los parámetros adecuados igual que para cualquier controlador de minipuerto. Para registrar su interfaz de miniport virtual, el controlador llama de nuevo a NdisMRegisterMiniportDriver , pero con la marca NDIS_INTERMEDIATE_DRIVER establecida en el parámetro MiniportDriverCharacteristics .

Para permitir que los controladores de miniporte registren servicios opcionales, NDIS llama a la función MiniportSetOptions en el contexto de NdisMRegisterMiniportDriver.

Después de que un controlador llame a NdisMRegisterMiniportDriver, el controlador debe prepararse para volver a llamarse en la función MiniportInitializeEx especificada en el parámetro MiniportDriverCharacteristics en cualquier momento después de que DriverEntry vuelva.

Si se produce un error en DriverEntry después de que NdisMRegisterMiniportDriver se devuelva correctamente, el controlador debe llamar al Función NdisMDeregisterMiniportDriver antes de que Se devuelva DriverEntry . Si DriverEntry se realiza correctamente, el controlador debe llamar a NdisMDeregisterMiniportDriver desde su función MiniportDriverUnload .

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.0 y versiones posteriores.
Plataforma de destino Universal
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI Irql_Miniport_Driver_Function(ndis)

Consulte también

Inicialización de un controlador miniport

DriverEntry

MiniportDriverUnload

MiniportInitializeEx

MiniportSetOptions

NDIS_MINIPORT_DRIVER_CHARACTERISTICS NdisMDeregisterMiniportDriver