estructura de NDIS_STATUS_INDICATION (ndis.h)

Los controladores NDIS y subyacentes usan la estructura de NDIS_STATUS_INDICATION para proporcionar indicaciones de estado a los controladores de protocolo excesivos.

Sintaxis

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;

Miembros

Header

Estructura NDIS_OBJECT_HEADER de la estructura NDIS_STATUS_INDICATION. Establezca el miembro Type de la estructura que Header especifica para NDIS_OBJECT_TYPE_STATUS_INDICATION, el miembro Revision en NDIS_STATUS_INDICATION_REVISION_1 y el miembro Size en NDIS_SIZEOF_STATUS_INDICATION_REVISION_1.

SourceHandle

Origen de la indicación de estado. Si el origen es un adaptador de minipuerto, debe ser el identificador que NDIS pasó al parámetro MiniportAdapterHandle de la función MiniportInitializeEx . Si el origen es un módulo de filtro, debe ser el identificador que NDIS pasó al parámetro NdisFilterHandle de la función FilterAttach .

PortNumber

Puerto de origen de la indicación de estado. Si la indicación de estado no es específica de un puerto, establezca PortNumber en cero.

StatusCode

El código de estado, ya sea proporcionado por NDIS o propagado desde los controladores subyacentes. El valor es un código NDIS_STATUS_XXX . Para obtener más información sobre los códigos NDIS_STATUS_XXX , vea Indicaciones de estado.

Flags

Tipo de información en el búfer de estado en StatusBuffer . Los controladores de minipuerto establecen este miembro en cero. Este miembro está reservado para NDIS.

DestinationHandle

Identificador que identifica el controlador de exceso que debe recibir la indicación de estado. Si es NULL, NDIS indica el estado de cada controlador de protocolo enlazado al adaptador de minipuerto. Si no es NULL, NDIS indica el estado solo para el controlador que DestinationHandle identifica. En este caso, el controlador también debe establecer el miembro RequestId . Para obtener más información sobre las solicitudes de OID, consulte la sección Comentarios.

RequestId

Solicitud OID asociada a la indicación de estado. Si no hay ninguna solicitud de OID asociada a la indicación de estado, RequestId es NULL. Los controladores de minipuerto deben establecer el miembro RequestId si la indicación de estado está asociada a una solicitud de OID que el controlador de miniporte completó con un estado devuelto de NDIS_STATUS_INDICATION_REQUIRED. En este caso, el controlador también debe establecer el miembro DestinationHandle .

Para obtener más información sobre las solicitudes de OID, consulte la sección Comentarios siguientes.

StatusBuffer

Puntero a un búfer que contiene datos específicos del medio que dependen del valor de StatusCode .

Por ejemplo, si StatusCode es NDIS_STATUS_LINK_STATE, este parámetro apunta a una estructura de NDIS_LINK_STATE y StatusBufferSize es sizeof(NDIS_LINK_STATE).

Para algunos valores NDIS_STATUS_XXX , este puntero es NULL y StatusBufferSize se establece en cero.

StatusBufferSize

Longitud, en bytes, del búfer de información de estado en StatusBuffer .

Guid

GUID privado que NDIS usa para generar una notificación WMI. Para obtener más información sobre los GUID privados, consulte OID_GEN_SUPPORTED_GUIDS.

NdisReserved[4]

Reservado para NDIS.

Comentarios

Los controladores miniport indican el estado llamando a la función NdisMIndicateStatusEx . Los controladores de filtro llaman a la función NdisFIndicateStatus .

Algunas solicitudes de OID permiten que un controlador de miniporte proporcione un estado de finalización de OID con una indicación de estado. En este caso, el controlador de minipuerto devuelve NDIS_STATUS_INDICATION_REQUIRED para el estado de finalización de la solicitud OID. Un controlador de minipuerto no puede devolver este estado a menos que el OID concreto lo permita. Para determinar si se permite este estado, consulte la página de referencia de OID.

Si una indicación de estado está asociada a una solicitud OID en la que el controlador de miniporte devolvió NDIS_STATUS_INDICATION_REQUIRED, el controlador que realiza la indicación de estado debe establecer los miembros DestinationHandle y RequestId en la estructura NDIS_STATUS_INDICATION.

En este caso, el controlador establece los miembros DestinationHandle y RequestId en los valores de los miembros RequestHandle y RequestId de la estructura NDIS_OID_REQUEST , respectivamente.

Por ejemplo, en las redes inalámbricas, el procesamiento de una solicitud de OID puede tardar mucho tiempo en completarse. En este caso, el controlador de minipuerto puede completar la solicitud de OID inmediatamente y proporcionar una indicación de estado más adelante para proporcionar el resultado final de la solicitud OID.

Los controladores de protocolo reciben indicaciones de estado en la función ProtocolStatusEx . Los controladores de filtro reciben indicaciones de estado en la función FilterStatus .

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.0 y versiones posteriores.
Encabezado ndis.h (incluya Ndis.h)

Consulte también

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