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