Partager via


Initialisation d’un adaptateur Miniport

Lorsqu’un périphérique réseau devient disponible, le système charge le pilote miniport NDIS requis, s’il n’est pas déjà chargé. Par la suite, le gestionnaire Plug-and-Play (PnP) envoie NDIS un IRP Plug-and-Play pour démarrer l’appareil. NDIS appelle la fonction MiniportInitializeEx du pilote miniport pour initialiser une carte pour les opérations d’E/S réseau. NDIS peut appeler MiniportInitializeEx à tout moment après l’initialisation du pilote. Pour plus d’informations sur l’initialisation du pilote miniport, consultez Initialisation d’un pilote Miniport.

Tant que MiniportInitializeEx n’est pas retourné, NDIS n’envoie aucune demande pour l’adaptateur en cours d’initialisation. L’adaptateur est à l’état Initialisation.

Un pilote miniport effectue généralement les tâches suivantes dans MiniportInitializeEx :

  1. Obtient les informations de configuration de l’adaptateur.

  2. Obtient des informations sur les ressources matérielles de l’adaptateur.

  3. Appelle NdisMSetMiniportAttributes et fournit les attributs suivants associés à l’adaptateur :

    • Pointeur vers une zone de contexte allouée par le pilote.
    • Indicateurs d’attributs appropriés.
    • Intervalle de délai d’attente pour appeler sa fonction MiniportCheckForHangEx .
    • Type de l'interface.
  4. Initialise des ressources spécifiques à l’adaptateur.

Le pilote miniport spécifie les attributs de l’adaptateur dans la structure NDIS_MINIPORT_ADAPTER_ATTRIBUTES que MiniportInitializeEx transmet à NdisMSetMiniportAttributes.

En règle générale, MiniportInitializeEx alloue des ressources spécifiques à l’adaptateur dans l’ordre suivant :

  1. Mémoire du pool non paginé.

  2. NET_BUFFER et NET_BUFFER_LIST pools (voir Opérations d’envoi et de réception du pilote Miniport).

  3. Verrous de rotation.

  4. Minuteries.

  5. Ports d’E/S.

  6. DMA (voir Nuages de points/Collecter des données).

  7. Mémoire partagée.

  8. Interruptions (voir Gestion des interruptions).

Une fois que MiniportInitializeEx est retourné avec succès, l’adaptateur est à l’état Suspendu. NDIS peut appeler la fonction MiniportRestart pour faire passer l’adaptateur à l’état En cours d’exécution. Pour plus d’informations, consultez Démarrage d’un adaptateur Miniport.

Si MiniportInitializeEx retourne NDIS_STATUS_SUCCESS, le pilote doit libérer toutes les ressources de l’adaptateur dans la fonction MiniportHaltEx . Pour plus d’informations, consultez Arrêt d’un adaptateur Miniport.

Le pilote doit appeler NdisMSetMiniportAttributes et définir generalAttributes dans la structure NDIS_MINIPORT_ADAPTER_ATTRIBUTES s’il retourne NDIS_STATUS_SUCCESS.

Si MiniportInitializeEx a échoué, MiniportInitializeEx doit libérer toutes les ressources qu’il a allouées avant de retourner et l’adaptateur revient à l’état Arrêté.

Arrêt d’un adaptateur Miniport

États et opérations de l’adaptateur Miniport

Opérations d’envoi et de réception du pilote Miniport

Nuage de points/regroupements DMA

Démarrage d’un adaptateur Miniport