Share via


配置 NDIS 埠

若要為迷你埠配接器配置 NDIS 埠,迷你埠驅動程式會呼叫 NdisMAllocatePort 函式。 NdisMAllocatePort 是同步的,並在 NDIS 成功配置埠所需的資源之後傳回。

在迷你埠驅動程式呼叫 NdisMAllocatePort之前,驅動程式必須呼叫 NdisMSetMiniportAttributes 函式,才能在 NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 結構中設定屬性。 迷你埠驅動程式可以在呼叫NdisMSetMiniportAttributes成功傳回,並在 NDIS 針對該迷你埠配接器呼叫MiniportHaltEx函式之前呼叫NdisMAllocatePort

NDIS 一律會配置預設埠 (埠零) ,因此迷你埠驅動程式不應該配置預設埠。 NDIS 會在迷你埠驅動程式傳回 MiniportHaltEx表單之後釋放預設埠。

當迷你埠驅動程式呼叫 NdisMAllocatePort 時,NDIS 會將埠號碼指派給埠。 驅動程式會在驅動程式呼叫NdisMAllocatePort之前,在NDIS_PORT_CHARACTERISTICS結構中指定埠特性。 當NdisMAllocatePort成功傳回時,PortCharacteristics參數指定的PortNumber NDIS_PORT_CHARACTERISTICS 成員會設定為指派給埠的 NDIS 埠號碼。

MiniportHaltEx傳回之前,迷你埠驅動程式必須呼叫 NdisMFreePort 函式,以釋放與迷你埠配接器相關聯的所有埠。 如果迷你埠配接器初始化失敗,驅動程式必須呼叫 NdisMFreePort 以釋放驅動程式從 MiniportInitializeEx 函式傳回之前配置的所有埠。 如需釋放 NDIS 埠的詳細資訊,請參閱 釋放 NDIS 埠

迷你埠驅動程式可以配置的埠數目上限為 0xffffff。 不過,在實務上,驅動程式會根據埠類型和驅動程式應用程式的需求,設定最大數目。 例如,針對橋接器應用程式,埠數目不太可能超過 16 個。 對於使用 802.1x supplicant 埠的存取點而言,埠數目會較高,而且對於使用虛擬私人網路的 WAN 驅動程式, (VPN) 埠而言,埠數目會更高。

迷你埠驅動程式配置埠之後,埠會處於已配置狀態,且埠未作用中。 埠無法用來傳送和接收資料、起始狀態指示、發出 OID 要求,或起始 隨插即用 (PnP) 事件,直到埠啟動為止。 NDIS 會在迷你埠驅動程式在 NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 結構中設定註冊屬性之後自動啟動預設埠。 若要要求 NDIS 未啟用預設埠,迷你埠驅動程式可以在 NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 的 AttributeFlags 成員中設定NDIS_MINIPORT_ATTRIBUTES_CONTROLS_DEFAULT_PORT。

NDIS 會將預設埠的驗證狀態傳遞至NDIS_MINIPORT_INIT_PARAMETERS結構之 DefaultPortAuthStates成員的MiniportInitializeEx函式。 如果迷你埠驅動程式控制預設埠,當迷你埠驅動程式啟動預設埠時,可以使用預設驗證設定來啟用預設埠。 如需啟用預設埠的詳細資訊,請參閱 啟用 NDIS 埠

迷你埠驅動程式可以使用NDIS_PORT_CHARACTERISTICS結構之 標成員中的 NDIS_PORT_CHAR_USE_DEFAULT_AUTH_SETTINGS 旗標,作為驅動程式配置和啟用的埠。 針對配置案例,NDIS 會將預設驗證狀態指派給新的埠,並忽略傳遞至 NdisMAllocatePort 函式的驗證狀態。

如需 NDIS 埠狀態的詳細資訊,請參閱 NDIS 埠狀態。 如需啟用埠的詳細資訊,請參閱 啟用 NDIS 埠