配置 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 函式的驗證狀態。