structure NDIS_STATUS_INDICATION (ndis.h)
Les pilotes NDIS et sous-jacents utilisent la structure NDIS_STATUS_INDICATION pour fournir des indications d’état aux pilotes de protocole excessivement.
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 pour la structure NDIS_STATUS_INDICATION. Définissez le membre type de la structure spécifiée par -en-tête 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 d’état. Si la source est un adaptateur miniport, il doit s’agir du handle que NDIS a transmis à la fonction MiniportAdapterHandle de la fonction MiniportInitializeEx. Si la source est un module de filtre, il doit s’agir du handle transmis à la paramètre NdisFilterHandle de la fonction FilterAttach.
PortNumber
Port source de l’indication d’état. Si l’indication d’état n’est pas spécifique à un port, définissez Numéro de port sur zéro.
StatusCode
Code d’état, fourni par NDIS ou propagé à partir des pilotes sous-jacents. La valeur est un code NDIS_STATUS_XXX. Pour plus d’informations sur NDIS_STATUS_codes de XXX, consultez Indications d’état.
Flags
Type d’informations dans la mémoire tampon d’état à StatusBuffer . Les pilotes miniport définissent ce membre sur zéro. Ce membre est réservé à NDIS.
DestinationHandle
Handle qui identifie le pilote qui doit recevoir l’indication d’état. Si NULL, NDIS indique l’état de chaque pilote de protocole lié à l’adaptateur miniport. SiNULL, NDIS indique l’état uniquement pour le pilote qui DestinationHandle identifie. Dans ce cas, le pilote doit également définir le RequestId membre. Pour plus d’informations sur les demandes OID, consultez la section Remarques.
RequestId
Demande OID associée à l’indication d’état. S’il n’existe aucune requête OID associée à l’indication d’état, RequestId est null. Les pilotes miniport doivent définir le RequestId membre si l’indication d’état est associée à une demande OID que le pilote miniport s’est terminé avec un état retourné 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 spécifiques à un support qui dépend de la valeur à 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 a la valeur zéro.
StatusBufferSize
Longueur, en octets, de la mémoire tampon d’informations d’état à StatusBuffer .
Guid
GUID privé utilisé par NDIS 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é à NDIS.
Remarques
Les pilotes miniport indiquent l’état en appelant la fonction NdisMIndicateStatusEx. Les pilotes de filtre appellent la fonction NdisFIndicateStatus.
Certaines demandes OID permettent à un pilote miniport de fournir un état d’achèvement OID avec une indication d’état. Dans ce cas, le pilote miniport retourne NDIS_STATUS_INDICATION_REQUIRED pour l’état d’achèvement de la requête OID. Un pilote miniport ne peut pas retourner cet état, sauf si l’OID particulier l’autorise. Pour déterminer si cet état est autorisé, consultez la page de référence OID.
Si une indication d’état est associée à une requête OID où le pilote miniport a retourné NDIS_STATUS_INDICATION_REQUIRED, le pilote qui effectue l’indication d’état doit définir le DestinationHandle et RequestId membres de la structure NDIS_STATUS_INDICATION.
Dans ce cas, le pilote définit les membres DestinationHandle et RequestId 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 requête OID peut prendre beaucoup de temps. Dans ce cas, le pilote miniport peut effectuer immédiatement la demande OID et fournir une indication d’état ultérieurement pour fournir le résultat final de la requête OID.
Les pilotes de protocole reçoivent des indications d’état à la fonction ProtocolStatusEx. Les pilotes de filtre reçoivent des indications d’état à la fonction FilterStatus.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Prise en charge dans NDIS 6.0 et versions ultérieures. |
d’en-tête | ndis.h (include Ndis.h) |