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的 Type 成員、將 Revision 成員設定為 NDIS_STATUS_INDICATION_REVISION_1,並將 Size 成員設定為 NDIS_SIZEOF_STATUS_INDICATION_REVISION_1。

SourceHandle

狀態指示的來源。 如果來源是迷你埠配接器,它應該是 NDIS 傳遞給 MiniportInitializeEx 函式之 MiniportAdapterHandle 參數的句柄。 如果來源是篩選模組,它應該是 NDIS 傳遞給 FilterAttach 函式之 NdisFilterHandle 參數的句柄。

PortNumber

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

StatusCode

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

Flags

StatusBuffer 狀態緩衝區中的資訊類型。 迷你埠驅動程式將此成員設定為零。 此成員保留給 NDIS。

DestinationHandle

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

RequestId

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

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

StatusBuffer

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

例如,如果 StatusCode是NDIS_STATUS_LINK_STATE,此參數會指向 NDIS_LINK_STATE 結構, 而 StatusBufferSize 的大小為 (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 要求相關聯,則進行狀態指示的驅動程式必須在 NDIS_STATUS_INDICATION 結構中設定 DestinationHandleRequestId 成員。

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

例如,在無線網路中,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