新增和刪除網路喚醒樣式
若要新增網路喚醒 (WOL) 範本,NDIS 通訊協定驅動程式會發出 OID 設定要求,OID_PM_ADD_WOL_PATTERN。 InformationBuffer 是 NDIS_OID_REQUEST 結構中的成員,含有指向 NDIS_PM_WOL_PATTERN 結構的指標。 如果網路適配器支援 WOL 封包,通訊協定驅動程式應該指定 WOL 封包。 當網路適配器不支援 WOL 封包時,通訊協定驅動程式應該使用 WOL 位圖喚醒方法。
NDIS_PM_WOL_PATTERN包含以下資訊:
優先順序
包含 WOL 模式的優先順序。 如果上層驅動程式在沒有資源可供更多 WOL 模式使用時新增較高優先順序的 WOL 模式,NDIS 可能會移除優先順序較低的 WOL 模式來釋放資源。 迷你埠驅動程序應該忽略此成員。 協議驅動程式可以指定預定義範圍內的任一優先順序,從NDIS_PM_WOL_PRIORITY_LOWEST到NDIS_PM_WOL_PRIORITY_HIGHEST。
WoLPacketType
包含指定 WOL 封包類型的 NDIS_PM_WOL_PACKET 列舉值。
友好名稱
包含 NDIS_PM_COUNTED_STRING 結構,其中該結構提供了 WOL 封包的用戶可讀描述。
PatternId
包含由 NDIS 提供以識別 WOL 模式的值。 在 NDIS 將 OID_PM_ADD_WOL_PATTERN OID 要求向下傳送至基礎 NDIS 驅動程式,或完成對上層驅動程式的要求之前,NDIS 會將 PatternId 設定為網路介面卡上 WOL 模式中唯一的值。
NextWoLPatternOffset
從 OID 請求之初 InformationBuffer開始的位置,到 OID_PM_WOL_PATTERN_LIST OID 清單中下一個 NDIS_PM_WOL_PATTERN 結構之間的偏移量(NDIS_PM_WOL_PATTERN 結構)。 如需有關 OID_PM_WOL_PATTERN_LIST 的詳細資訊,請參閱 取得 WOL 模式的當前設定。
WoLPattern
包含在聯合體中的其中一個 IPv4TcpSynParameters、IPv6TcpSynParameters、EapolRequestIdMessageParameters或 WoLBitMapPattern 結構。
IPv4TcpSynParameters
包含IPv4 TCP 同步處理 (SYN) 資訊。
IPv6TcpSynParameters
包含 IPv6 TCP SYN 資訊。
EapolRequestIdMessageParameters
包含 802.1X EAP over LAN (EAPOL) 要求識別訊息參數。
WoLBitMapPattern
包含 WOL 位圖模式規格。
NDIS 會將網路適配器唯一的標識碼指派給每個WOL模式。 模式標識碼是網路適配器上設定之每個模式的唯一值。 不過,在所有網路適配器上,模式標識符並非全域唯一的。 當 NDIS 將 OID_PM_ADD_WOL_PATTERN OID 要求傳送至迷你埠驅動程式時,NDIS 會將標識碼傳遞至基礎網路適配器。 如果成功新增了 WOL 樣式,NDIS 會將標識碼傳回新增 WOL 樣式的上層驅動程式。 較高層的驅動程式會使用識別碼來移除先前新增的喚醒模式 (WOL)。 當從網路適配器中移除 WOL 模式時,模式識別符號也用於上層驅動程式的狀態顯示。
通訊協定驅動程式必須發出 OID_PM_REMOVE_WOL_PATTERN 的 OID 集合要求,才能移除它們新增至網路適配器的所有模式,再關閉該網路適配器的系結。 InformationBuffer 是 NDIS_OID_REQUEST 結構中的一個成員,其中包含指向模式識別碼的指標。
使用者模式應用程式會使用 GUID_PM_REMOVE_WOL_PATTERN WMI GUID,從網路適配器移除先前新增的 WOL 模式。 NDIS 會將此 WMI 要求轉換為網路適配器 OID_PM_REMOVE_WOL_PATTERN 的 OID 設定要求。 NDIS 會刪除應用程式在停止網路適配器之前從網路適配器新增的所有 WOL 模式。
NDIS 允許多個 NDIS 通訊協定驅動程式將 WOL 模式新增至相同的網路配接器。 為了確保在要求的 WOL 模式數目超過網路介面卡支援上限時,已設定正確的 WOL 模式集合,協定驅動程式會在 NDIS_PM_WOL_PATTERN 結構的 優先順序 成員中為每個要求的 WOL 模式指派優先順序。 當 NDIS 無法新增新的高優先順序 WOL 模式時,因為網路適配器的資源不足,NDIS 會刪除其中一個優先順序較低的模式(如果有的話),並嘗試再次新增高優先順序模式。
注意 迷你埠驅動程序應該失敗模式新增要求,並傳回STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL狀態代碼,讓 NDIS 重新設定模式的優先順序。
如果 NDIS 刪除其中一個優先順序較低的模式,它會通知設定了已刪除模式的上層驅動程式,並給予 NDIS_STATUS_PM_WOL_PATTERN_REJECTED 狀態指示。 StatusBuffer 成員在 NDIS_STATUS_INDICATION 結構中,包含一個代表已拒絕 WOL 模式識別碼的 ULONG。 NDIS 在 PatternIdNDIS_PM_WOL_PATTERN 結構的成員中提供了 WOL 模式識別碼。
對於可能使用基礎結構元素來卸載在基礎結構之間漫遊時的模式的無線網路適配卡,新的基礎結構元素可能不支援相同的功能,小埠驅動程式可以使用適當的狀態代碼傳送 NDIS_STATUS_PM_WOL_PATTERN_REJECTED 狀態指示。