Share via


NDIS_STATUS_INDICATION (Compact 7)

3/12/2014

NDIS and underlying drivers use this 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.
  • 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 OID_GEN_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.

  • 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 comments 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 Comments section.

  • Guid
    A private GUID that NDIS uses to generate a WMI notification. For more information about private GUIDs, see OID_GEN_SUPPORTED_GUIDS.
  • NdisReserved
    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 whether 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

Header

ndis.h

See Also

Reference

NDIS Status Indication Structures
FilterAttach
FilterStatus
MiniportInitializeEx
OID_GEN_LINK_STATE
NDIS_OBJECT_HEADER
NDIS_OID_REQUEST
NDIS_STATUS_LINK_STATE
NDIS_TAPI_EVENT
NdisFIndicateStatus
NdisMIndicateStatusEx
NdisOpenAdapterEx
OID_GEN_SUPPORTED_GUIDS
ProtocolStatusEx