structure NDIS_STATUS_INDICATION (ndis.h)

NDIS et les pilotes sous-jacents utilisent la structure de NDIS_STATUS_INDICATION pour fournir des indications de status aux pilotes de protocole qui se superposent.

Syntaxe

typedef struct _NDIS_STATUS_INDICATION {
  NDIS_OBJECT_HEADER Header;
  NDIS_HANDLE        SourceHandle;
  NDIS_PORT_NUMBER   PortNumber;
  NDIS_STATUS        StatusCode;
  ULONG              Flags;
  NDIS_HANDLE        DestinationHandle;
  PVOID              RequestId;
  PVOID              StatusBuffer;
  ULONG              StatusBufferSize;
  GUID               Guid;
  PVOID              NdisReserved[4];
} NDIS_STATUS_INDICATION, *PNDIS_STATUS_INDICATION;

Membres

Header

Structure NDIS_OBJECT_HEADER de la structure NDIS_STATUS_INDICATION. Définissez le membre Type de la structure spécifiée par Header sur NDIS_OBJECT_TYPE_STATUS_INDICATION, le membre Revision sur NDIS_STATUS_INDICATION_REVISION_1 et le membre Size sur NDIS_SIZEOF_STATUS_INDICATION_REVISION_1.

SourceHandle

Source de l’indication status. Si la source est un adaptateur miniport, il doit s’agir du handle que NDIS a transmis au paramètre MiniportAdapterHandle de la fonction MiniportInitializeEx . Si la source est un module de filtre, il doit s’agir du handle que NDIS a transmis au paramètre NdisFilterHandle de la fonction FilterAttach .

PortNumber

Port source de l’indication status. Si l’indication status n’est pas spécifique à un port, définissez PortNumber sur zéro.

StatusCode

Le code status, fourni par NDIS ou propagé à partir des pilotes sous-jacents. La valeur est un code NDIS_STATUS_XXX . Pour plus d’informations sur les codes NDIS_STATUS_XXX , consultez Indications d’état.

Flags

Type d’informations dans la mémoire tampon status sur StatusBuffer . Les pilotes miniport définissent ce membre sur zéro. Ce membre est réservé à NDIS.

DestinationHandle

Handle qui identifie le pilote de sur-position qui doit recevoir l’indication status. Si la valeur est NULL, NDIS indique le status à chaque pilote de protocole lié à l’adaptateur miniport. Si la valeur n’est pas NULL, NDIS indique le status uniquement au pilote identifié par DestinationHandle. Dans ce cas, le pilote doit également définir le membre RequestId . Pour plus d’informations sur les demandes OID, consultez la section Remarques.

RequestId

Requête OID associée à l’indication status. Si aucune requête OID n’est associée à l’indication status, RequestId a la valeur NULL. Les pilotes miniport doivent définir le membre RequestId si l’indication status est associée à une demande OID indiquant que le pilote miniport a terminé avec une status retournée de NDIS_STATUS_INDICATION_REQUIRED. Dans ce cas, le pilote doit également définir le membre DestinationHandle .

Pour plus d’informations sur les demandes OID, consultez la section Remarques suivante.

StatusBuffer

Pointeur vers une mémoire tampon qui contient des données moyennes spécifiques qui dépendent de la valeur dans StatusCode .

Par exemple, si StatusCode est NDIS_STATUS_LINK_STATE, ce paramètre pointe vers une structure NDIS_LINK_STATE et StatusBufferSize est sizeof(NDIS_LINK_STATE).

Pour certaines valeurs NDIS_STATUS_XXX , ce pointeur est NULL et StatusBufferSize est défini sur zéro.

StatusBufferSize

Longueur, en octets, de la mémoire tampon d’informations status sur StatusBuffer .

Guid

GUID privé que NDIS utilise pour générer une notification WMI. Pour plus d’informations sur les GUID privés, consultez OID_GEN_SUPPORTED_GUIDS.

NdisReserved[4]

Réservé pour NDIS.

Remarques

Les pilotes miniport indiquent status en appelant la fonction NdisMIndicateStatusEx. Les pilotes de filtre appellent la fonction NdisFIndicateStatus .

Certaines requêtes OID permettent à un pilote miniport de fournir une status d’achèvement OID avec une indication de status. Dans ce cas, le pilote miniport retourne NDIS_STATUS_INDICATION_REQUIRED pour la status d’achèvement de la requête OID. Un pilote miniport ne peut pas retourner ce status sauf si l’OID particulier l’autorise. Pour déterminer si cette status est autorisée, consultez la page de référence OID.

Si une indication status est associée à une requête OID dans laquelle le pilote miniport a retourné NDIS_STATUS_INDICATION_REQUIRED, le pilote qui effectue l’indication status doit définir les membres DestinationHandle et RequestId dans la structure NDIS_STATUS_INDICATION.

Dans ce cas, le pilote définit les membres DestinationHandle et RequestId sur les valeurs des membres RequestHandle et RequestId dans la structure NDIS_OID_REQUEST , respectivement.

Par exemple, dans la mise en réseau sans fil, le traitement d’une demande OID peut prendre beaucoup de temps. Dans ce cas, le pilote miniport peut terminer immédiatement la requête OID et fournir une indication status ultérieurement pour fournir le résultat final de la requête OID.

Les pilotes de protocole reçoivent status indications au niveau de la fonction ProtocolStatusEx. Les pilotes de filtre reçoivent status indications au niveau de la fonction FilterStatus.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.0 et versions ultérieures.
En-tête ndis.h (inclure Ndis.h)

Voir aussi

FilterAttach

FilterStatus

MiniportInitializeEx

NDIS_LINK_STATE

NDIS_OBJECT_HEADER

NDIS_OID_REQUEST

NDIS_STATUS_LINK_STATE

NDIS_TAPI_EVENT

NdisFindicateStatus

NdisMIndicateStatusEx

NdisOpenAdapterEx

OID_GEN_SUPPORTED_GUIDS

ProtocolStatusEx