共用方式為


NDIS_STATUS_INDICATION結構 (ndis.h)

NDIS 和基礎驅動程式會使用 NDIS_STATUS_INDICATION 結構,為過度配置通訊協定驅動程式提供狀態指示。

語法

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;

成員

Header

NDIS_STATUS_INDICATION 結構的 NDIS_OBJECT_HEADER 結構。 Header 指定為 NDIS_OBJECT_TYPE_STATUS_INDICATION、Revision 成員NDIS_STATUS_INDICATION_REVISION_1,並將 Size 成員設定為 NDIS_STATUS_INDICATION_REVISION_1 結構 NDIS_SIZEOF_STATUS_INDICATION_REVISION_1 成員。

SourceHandle

狀態指示的來源。 如果來源是迷你埠配接器,它應該是 NDIS 傳遞給 MiniportAdapterHandleMiniportInitializeEx 函式的句柄。 如果來源是篩選模組,它應該是傳遞至 NdisFilterHandleFilterAttach 函式之 NDIS 的句柄。

PortNumber

狀態指示的來源埠。 如果狀態指示不是埠特有的,請將 PortNumber 設為零。

StatusCode

狀態代碼,由 NDIS 提供或從基礎驅動程序傳播。 此值是NDIS_STATUS_XXX 程式代碼。 如需NDIS_STATUS_XXX 代碼的詳細資訊,請參閱 狀態指示

Flags

狀態緩衝區中 StatusBuffer 的信息類型。 Miniport 驅動程式將此成員設定為零。 此成員保留給 NDIS。

DestinationHandle

識別應該接收狀態指示之過度驅動程式的句柄。 如果 NULL,NDIS 會向系結至迷你埠配接器的每個通訊協定驅動程式指出狀態。 如果非NULL,NDIS 只會向 DestinationHandle 識別的驅動程式指出狀態。 在此情況下,驅動程式也必須設定 RequestId 成員。 如需 OID 要求的詳細資訊,請參閱一節。

RequestId

與狀態指示相關聯的 OID 要求。 如果沒有與狀態指示相關聯的 OID 要求,RequestIdNULL。 如果狀態指示與迷你埠驅動程式以傳回的狀態NDIS_STATUS_INDICATION_REQUIRED完成的 OID 要求相關聯,Miniport 驅動程式就必須設定 RequestId 成員。 在此情況下,驅動程式也必須設定 DestinationHandle 成員。

如需 OID 要求的詳細資訊,請參閱下列一節。

StatusBuffer

緩衝區的指標,其中包含相依於 statusCode 的中特定數據。

例如,如果 StatusCodeNDIS_STATUS_LINK_STATE,則此參數會指向 NDIS_LINK_STATE 結構 ,而 statusBufferSize 為 sizeof(NDIS_LINK_STATE)。

對於某些 NDIS_STATUS_XXX 值,此指標會 NULL,而且 statusBufferSize 設定為零。

StatusBufferSize

狀態資訊緩衝區的長度,以位元組為單位,StatusBuffer

Guid

NDIS 用來產生 WMI 通知的私人 GUID。 如需私人 GUID 的詳細資訊,請參閱 OID_GEN_SUPPORTED_GUIDS

NdisReserved[4]

保留給 NDIS。

言論

迷你埠驅動程式會呼叫 NdisMIndicateStatusEx 函式來指出狀態。 篩選驅動程式會呼叫 NdisFIndicateStatus 函式。

某些 OID 要求可讓迷你埠驅動程式提供狀態指示的 OID 完成狀態。 在此情況下,迷你埠驅動程式會針對 OID 要求的完成狀態傳回NDIS_STATUS_INDICATION_REQUIRED。 除非特定 OID 允許此狀態,否則迷你埠驅動程式無法傳回此狀態。 若要判斷是否允許此狀態,請參閱 OID 參考頁面。

如果狀態指示與迷你埠驅動程式傳回NDIS_STATUS_INDICATION_REQUIRED的 OID 要求相關聯,則發出狀態指示的驅動程式必須設定 DestinationHandle,並 RequestId NDIS_STATUS_INDICATION 結構的成員。

在此情況下,驅動程式會將 DestinationHandleRequestId 成員設定為來自 RequestHandleRequestId 成員的值,分別 NDIS_OID_REQUEST 結構。

例如,在無線網路中,OID 要求的處理可能需要很長的時間才能完成。 在此情況下,迷你埠驅動程式可以立即完成 OID 要求,並在稍後提供狀態指示,以提供 OID 要求的最終結果。

通訊協定驅動程式會在 protocolStatusEx 函式 接收狀態指示。 篩選驅動程式會在 FilterStatus 函式收到狀態指示。

要求

要求 價值
最低支援的用戶端 NDIS 6.0 和更新版本支援。
標頭 ndis.h (包括 Ndis.h)

另請參閱

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