NDIS_STATUS_INDICATION structure (ndis.h)

NDIS and underlying drivers use the NDIS_STATUS_INDICATION structure to provide status indications to overlying protocol drivers.

Syntax

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;

Members

Header

The NDIS_OBJECT_HEADER structure for the NDIS_STATUS_INDICATION structure. Set the Type member of the structure that Header specifies to NDIS_OBJECT_TYPE_STATUS_INDICATION, the Revision member to NDIS_STATUS_INDICATION_REVISION_1, and the Size member to NDIS_SIZEOF_STATUS_INDICATION_REVISION_1.

SourceHandle

The source of the status indication. If the source is a miniport adapter, it should be the handle that NDIS passed to the MiniportAdapterHandle parameter of the MiniportInitializeEx function. If the source is a filter module, it should be the handle that NDIS passed to the NdisFilterHandle parameter of the FilterAttach function.

PortNumber

The source port of the status indication. If the status indication is not specific to a port, set PortNumber to zero.

StatusCode

The status code, either provided by NDIS or propagated from the underlying drivers. The value is an NDIS_STATUS_XXX code. For more information about NDIS_STATUS_XXX codes, see Status Indications.

Flags

The type of information in the status buffer at StatusBuffer . Miniport drivers set this member to zero. This member is reserved for NDIS.

DestinationHandle

A handle that identifies the overlying driver that should receive the status indication. If NULL, NDIS indicates the status to each protocol driver that is bound to the miniport adapter. If non-NULL, NDIS indicates the status only to the driver that DestinationHandle identifies. In this case the driver must also set the RequestId member. For more information about OID requests, see the Remarks section.

RequestId

The OID request that is associated with the status indication. If there is no OID request that is associated with the status indication, RequestId is NULL. Miniport drivers must set the RequestId member if the status indication is associated with an OID request that the miniport driver completed with a returned status of NDIS_STATUS_INDICATION_REQUIRED. In this case, the driver must also set the DestinationHandle member.

For more information about OID requests, see the following Remarks section.

StatusBuffer

A pointer to a buffer that contains medium-specific data that depends on the value at StatusCode .

For example, if StatusCode is NDIS_STATUS_LINK_STATE, this parameter points to an NDIS_LINK_STATE structure and StatusBufferSize is sizeof(NDIS_LINK_STATE).

For some NDIS_STATUS_XXX values, this pointer is NULL and StatusBufferSize is set to zero.

StatusBufferSize

The length, in bytes, of the status information buffer at StatusBuffer .

Guid

A private GUID that NDIS uses to generate a WMI notification. For more information about private GUIDs, see OID_GEN_SUPPORTED_GUIDS.

NdisReserved[4]

Reserved for NDIS.

Remarks

Miniport drivers indicate status by calling the NdisMIndicateStatusEx function. Filter drivers call the NdisFIndicateStatus function.

Some OID requests enable a miniport driver to provide an OID completion status with a status indication. In this case, the miniport driver returns NDIS_STATUS_INDICATION_REQUIRED for the completion status of the OID request. A miniport driver cannot return this status unless the particular OID allows it. To determine if this status is allowed, see the OID reference page.

If a status indication is associated with an OID request where the miniport driver returned NDIS_STATUS_INDICATION_REQUIRED, the driver that is making the status indication must set the DestinationHandle and RequestId members in the NDIS_STATUS_INDICATION structure.

In this case, the driver sets the DestinationHandle and RequestId members to the values from the RequestHandle and RequestId members in the NDIS_OID_REQUEST structure, respectively.

For example, in wireless networking, the processing of an OID request can take a very long time to complete. In this case, the miniport driver can complete the OID request immediately and provide a status indication later to provide the final result for the OID request.

Protocol drivers receive status indications at the ProtocolStatusEx function. Filter drivers receive status indications at the FilterStatus function.

Requirements

Requirement Value
Minimum supported client Supported in NDIS 6.0 and later.
Header ndis.h (include Ndis.h)

See also

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