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) |