共用方式為


NdisMIndicateStatus 函式 (ndis.h)

注意 NDIS 5. x 已被取代,並被 NDIS 6 取代。 x。 如需新的 NDIS 驅動程式開發,請參閱 從 Windows Vista 開始的網路驅動程式。 如需移植 NDIS 5 的相關信息。 x 驅動程式至 NDIS 6。 x,請參閱 將 NDIS 5.x 驅動程式移植到 NDIS 6.0

NdisMIndicateStatus 表示 NIC 狀態變更為較高層級的 NDIS 驅動程式。

語法

void NdisMIndicateStatus(
  [in] NDIS_HANDLE MiniportHandle,
  [in] NDIS_STATUS GeneralStatus,
  [in] PVOID       StatusBuffer,
  [in] UINT        StatusBufferSize
);

參數

[in] MiniportHandle

指定最初輸入 至 MiniportInitialize 的句柄。

[in] GeneralStatus

指定NDIS_STATUS_ XXX 值,指出 NIC 狀態的一般變更。

[in] StatusBuffer

呼叫端配置的緩衝區指標,其中包含中度特定且相依於 GeneralStatus 值的數據。 指出狀態變更的詳細資訊。

[in] StatusBufferSize

指定 StatusBuffer 上緩衝區的大小,以位元組為單位。

傳回值

備註

當迷你埠驅動程式呼叫 NdisMIndicateStatus 時,NDIS 會呼叫每個系結通訊協定的 ProtocolStatus 函式。 這可讓系結的通訊協定驅動程式,或可能是組態管理員記錄基礎 NIC 的狀態變更,或採取更正動作。 例如,通訊協定可能會根據指定的NDIS_STATUS_ XXX 呼叫 NdisReset

當迷你埠驅動程式呼叫 NdisMIndicateStatus 以報告 NIC 狀態的變更時,NDIS 可以呼叫 MiniportReset 函式來嘗試將 NIC 還原至工作狀況。 在這些情況下,NDIS 只能使用 NDIS_STATUS_RESET_START 和更新版本搭配 NDIS_STATUS_RESET_END 呼叫系結通訊協定,而不是使用迷你埠驅動程式所指示的 GeneralStatus

NdisMIndicateStatus 提供兩項資訊:

  • 整體狀態值,表示狀態的一般變更。
  • 一般變更的特定原因,可以是網路特定。 例如,通道插入失敗特別適用於令牌通道 (802.5) 網路,但與乙太網路 (802.3) NIC 及其驅動程序無關。

迷你埠驅動程式也可以呼叫 NdisMIndicateStatus ,以指出意外移除纜線,然後重新插入或暫時失敗的環形等問題。 例如,假設發生下列兩種情況:

  • 迷你埠驅動程式會使用 NDIS_STATUS_RING_STATUS 呼叫 NdisMIndicateStatus

  • StatusBuffer 包含下列其中一個狀態值:

    • NDIS_RING_LOBE_WIRE_FAULT
    • NDIS_RING_HARD_ERROR NDIS_RING_SIGNAL_LOSS

當狀態的這類變更收到指示之後,任何相關聯的臨界值或統計數據計數器都會保持不變。

迷你埠驅動程序無法在MiniportISRMiniportHaltMiniportShutdown函式的內容中呼叫 NdisMIndicateStatus。 只有還原串行化的迷你埠驅動程式可以在其MiniportInitialize函式的內容中呼叫 NdisMIndicateStatus

迷你埠驅動程序必須在呼叫 NdisMIndicateStatus 之前釋放它所持有的任何微調鎖定。

NdisMIndicateStatus 的串行化呼叫端必須在 IRQL = DISPATCH_LEVEL執行。 NdisMIndicateStatus 的還原串行化呼叫端必須在 IRQL <= DISPATCH_LEVEL執行。

指出網路連線的遺失和還原

當迷你埠驅動程序發現網路連線已遺失時,應該使用 NDIS_STATUS_MEDIA_DISCONNECT 呼叫 NdisMIndicateStatus 。 還原連線時,迷你埠驅動程序應該使用 NDIS_STATUS_MEDIA_CONNECT 呼叫 NdisMIndicateStatus

注意 :產生網路連線指示時,802.11 迷你埠驅動程序必須遵循無線 LAN 的媒體狀態指導方針。 如需這些指導方針的詳細資訊,請參閱 802.11 網路的媒體狀態指示

802.11 無線 LAN Miniport 驅動程式呼叫 NdisMIndicateStatus

802.11 無線 LAN (WLAN) 迷你埠驅動程式可以針對WLAN 媒體進行各種特定指示。 例如,迷你埠驅動程式可以在發生下列情況時發出WLAN 特定的指示:

  • 驅動程式偵測到其目前 BSS 關聯的接收訊號強度已變更。
  • 驅動程式會在收到的封包上偵測到 TKIP MIC 失敗。

您可以使用 NdisMIndicateStatus,透過 802.11 迷你埠驅動程序來設定下列 WLAN 特定指示:

如需這些媒體特定指示的詳細資訊,請參閱 802.11 Media-Specific 狀態指示

WAN Miniport 驅動程序呼叫 NdisMIndicateStatus

大部分的 WAN NIC 驅動程式都會指出某些特殊狀態代碼和緩衝區內容的狀態。 這些狀態指示是由WAN NIC 驅動程式所產生,而系結至這類迷你埠驅動程式的NDIS通訊協定驅動程式可以忽略這些指示。 不過,正確處理這些指示通常會導致改善通訊協定和 WAN NIC 驅動程式的效能。

您可以使用 NdisMIndicateStatus 將下列四種類型的 WAN 特定指示傳送至系結通訊協定驅動程式:

  • 向上捲動一行
  • 向下捲動一行
  • 片段
  • TAPI 行事件

NDIS_STATUS_WAN_LINE_UP

每當新的連結變成作用中時,WAN 迷你埠驅動程式就會發出線條指示。 在發生這種情況之前,NIC 會接受畫面,並讓他們成功或失敗,但不太可能由任何遠端節點實際接收它們。 在發生這種情況之前,通訊協定應該減少其定時器,並重試計數,以快速使任何連出連線嘗試失敗。

WAN 迷你埠驅動程式會先向 NdisMIndicateStatus 提出此指示,再從 OID_TAPI_GET_ID 要求傳回。

行指示的狀態代碼NDIS_STATUS_WAN_LINE_UP。 StatusBuffer 上的緩衝區會格式化為NDIS_MAC_LINE_UP結構。

NDIS_STATUS_WAN_LINE_DOWN

WAN 迷你埠驅動程式會在鏈接關閉時發出向下行指示。 發生這種情況時,系結通訊協議應該會減少其定時器,並重試計數,直到下一行指示為止。

向下行指示的狀態代碼NDIS_STATUS_WAN_LINE_DOWN。 StatusBuffer 上的緩衝區會格式化為NDIS_MAC_LINE_DOWN結構。

NDIS_STATUS_WAN_FRAGMENT

每當WAN 迷你埠驅動程序從遠端節點收到部分封包時,就會發出片段指示。 發生這種情況時,系結通訊協議應該將框架傳送至遠端節點,以通知這種情況,而不是等候逾時發生。

片段指示的狀態代碼NDIS_STATUS_WAN_FRAGMENT。 StatusBuffer 上的緩衝區會格式化為NDIS_MAC_FRAGMENT結構。

NDISWAN 會藉由計算每個連結上的片段指示數目來監視捨棄的封包。

NDIS_TAPI_EVENT

WAN 迷你埠驅動程序必須針對 TAPI 狀態指示使用 NDIS_STATUS_TAPI_INDICATION 的 GeneralStatusStatusBuffer 上的緩衝區會格式化為NDIS_TAPI_EVENT結構。

  • 目標平臺: 通用
  • 版本:Windows Vista 中不支援 NDIS 6.0 驅動程式。 請改用 NdisMIndicateStatusEx。 Windows Vista 和 Windows XP 中支援 NDIS 5.1 驅動程式。

規格需求

需求
標頭 ndis.h (包含 Ndis.h)
程式庫 Ndis.lib

另請參閱