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 |
---|---|
|
NdisMRegisterMiniportDriver registró correctamente el controlador de miniport. |
|
El parámetro CharacteristicsLength es incorrecto para la versión NDIS especificada en el miembro MajorNdisVersion de la estructura en MiniportDriverCharacteristics . |
|
MajorNdisVersion o MinorNdisVersion especificados en la estructura de características no son válidos. |
|
Una escasez de recursos, posiblemente memoria, impedía que NDIS registrara el autor de la llamada. |
|
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
NDIS_MINIPORT_DRIVER_CHARACTERISTICS NdisMDeregisterMiniportDriver