Inicialización de un adaptador de minipuerto

Cuando un dispositivo de red está disponible, el sistema carga el controlador de miniporte NDIS necesario, si aún no está cargado. Posteriormente, el administrador de Plug and Play (PnP) envía a NDIS un IRP Plug and Play para iniciar el dispositivo. NDIS llama a la función MiniportInitializeEx del controlador de miniport para inicializar un adaptador para las operaciones de E/S de red. NDIS puede llamar a MiniportInitializeEx en cualquier momento después de inicializar el controlador. Para obtener más información sobre la inicialización del controlador de miniporte, consulte Inicialización de un controlador miniport.

Hasta que se devuelva MiniportInitializeEx , NDIS no envía solicitudes para el adaptador que se está inicializando. El adaptador está en estado Inicialización.

Normalmente, un controlador de minipuerto realiza las siguientes tareas en MiniportInitializeEx:

  1. Obtiene información de configuración para el adaptador.

  2. Obtiene información sobre los recursos de hardware del adaptador.

  3. Llama a NdisMSetMiniportAttributes y proporciona los siguientes atributos asociados al adaptador:

    • Puntero a un área de contexto asignada por el controlador.
    • Marcas de atributos adecuadas.
    • Intervalo de tiempo de espera para llamar a su función MiniportCheckForHangEx .
    • Tipo de la interfaz.
  4. Inicializa recursos específicos del adaptador.

El controlador de minipuerto especifica los atributos del adaptador en la estructura NDIS_MINIPORT_ADAPTER_ATTRIBUTES que MiniportInitializeEx pasa a NdisMSetMiniportAttributes.

Normalmente, MiniportInitializeEx asigna recursos específicos del adaptador en el orden siguiente:

  1. Memoria del grupo no paginado.

  2. NET_BUFFER y grupos de NET_BUFFER_LIST (consulte Miniport Driver Send and Receive Operations).

  3. Bloqueos de número.

  4. Temporizadores.

  5. Puertos de E/S.

  6. DMA (consulte Dispersión/Recopilación de DMA).

  7. Memoria compartida.

  8. Interrupciones (consulte Administración de interrupciones).

Después de que MiniportInitializeEx vuelva correctamente, el adaptador se encuentra en estado Pausado. NDIS puede llamar a la función MiniportRestart para realizar la transición del adaptador al estado En ejecución. Para obtener más información, vea Iniciar un adaptador de minipuerto.

Si MiniportInitializeEx devuelve NDIS_STATUS_SUCCESS, el controlador debe liberar todos los recursos del adaptador en la función MiniportHaltEx . Para obtener más información, vea Detener un adaptador de minipuerto.

El controlador debe llamar a NdisMSetMiniportAttributes y establecer los GeneralAttributes en la estructura NDIS_MINIPORT_ADAPTER_ATTRIBUTES si devuelve NDIS_STATUS_SUCCESS.

Si se produjo un error en MiniportInitializeEx , MiniportInitializeEx debe liberar todos los recursos asignados antes de que devuelva y el adaptador vuelva al estado Detenido.

Detener un adaptador de minipuerto

Estados y operaciones del adaptador de miniporte

Operaciones de envío y recepción del controlador de miniporte

Dispersión y recopilación de DMA

Inicio de un adaptador de minipuerto