NdisIfRegisterInterface 函式 (ndis.h)

NdisIfRegisterInterface 函式會註冊 NDIS 網路介面。

語法

NDIS_STATUS NdisIfRegisterInterface(
  [in] NDIS_HANDLE         NdisProviderHandle,
  [in] NET_LUID            NetLuid,
  [in] NDIS_HANDLE         ProviderIfContext,
  [in] PNET_IF_INFORMATION pIfInfo,
       PNET_IFINDEX        pfIndex
);

參數

[in] NdisProviderHandle

識別註冊介面之網路介面提供者的句柄。 呼叫端從先前對的呼叫取得此句柄 NdisIfRegisterProvider 函 式。

[in] NetLuid

呼叫端提供的 NET_LUID 值,與介面相關聯。 介面提供者使用 NDIS_MAKE_NET_LUID 宏來建立這個NET_LUID值。 介面提供者應該在計算機重新啟動后從永續性記憶體復原NET_LUID值,並在每次註冊特定介面時提供相同的NET_LUID值。

[in] ProviderIfContext

與介面相關聯的呼叫端配置內容區域的句柄。 NDIS 會將此句柄傳遞給呼叫端向 NdisIfRegisterProvider 註冊的回呼函式。

[in] pIfInfo

呼叫端配置的 NET_IF_INFORMATION 結構的指標,可提供 介面的相關信息。 此結構包含介面存在時維持不變的資訊。

pfIndex

呼叫端提供的介面索引變數指標。 如果 NDIS 成功註冊介面,NDIS 會為該介面配置介面索引,並在 pIfIndex 設定值。 介面索引是本機計算機上唯一的 24 位值。 每次提供者使用相同的NET_LUID值註冊介面時,NDIS 可能不會傳回相同的介面索引。 介面索引值零是保留的,NDIS 不會將其指派給任何介面。 請勿將介面索引與NET_LUID索引混淆。

傳回值

NdisIfRegisterInterface 會傳回下列其中一個狀態值:

傳回碼 Description
NDIS_STATUS_SUCCESS
作業已成功完成。
NDIS_STATUS_RESOURCES
作業失敗,因為資源不足。
NDIS_STATUS_INVALID_PARAMETER
NdisIfRegisterInterface 失敗,因為某些輸入參數無效。
NDIS_STATUS_DUPLICATE_OBJECTID
NdisIfRegisterInterface 失敗,因為已經有與 NetLuid 參數指定的相同NET_LUID值註冊的介面。

備註

NDIS 介面提供者會呼叫 NdisIfRegisterInterface 函式來註冊網路介面。 呼叫此函式並不表示介面為作用中。

每當電腦重新啟動時,NDIS 會以空白的已註冊網路介面清單開頭。 每當 (或) 偵測到介面和介面的 時,介面提供者都會呼叫 NdisIfRegisterInterface 函式
已知NET_LUID

偵測或啟動介面的方法與應用程式相關。 例如,如果 LBFO MUX 中繼驅動程式是介面提供者,該驅動程式可能會在 NDIS 針對第一個基礎迷你埠配接器呼叫驅動程式的 ProtocolBindAdapterEx 函式時註冊內部介面。

介面提供者可以將介面的相關信息放在永續性記憶體中,並視需要還原特定應用程式所需的介面。 例如,提供者可以使用 NET_LUID 來儲存介面的其他資訊,而且可以在計算機重新啟動之後重新註冊介面。

如果 NdisIfRegisterInterface 成功,NDIS 會將介面新增至已知介面清單,並為此介面配置新的介面索引。 介面提供者應該盡可能註冊已啟用和停用的介面。 所有已啟用的介面都必須註冊。

每次提供者使用相同的NET_LUID值註冊介面時,NDIS 可能不會傳回相同的介面索引。 例如,當計算機重新啟動或重新註冊介面時,NDIS 不一定指派相同的介面索引。 介面索引值零是保留的,NDIS 不會將其指派給任何介面。

若要指出應該從電腦上的已知介面清單中移除介面,介面提供者會呼叫例如,因為介面已卸載,所以 NdisIfDeregisterInterface 函式。 .

規格需求

需求
最低支援的用戶端 NDIS 6.0 和更新版本支援。
目標平台 桌面
標頭 ndis.h (包含 Ndis.h)
程式庫 Ndis.lib
IRQL PASSIVE_LEVEL
DDI 合規性規則 Irql_Interfaces_Function (ndis)

另請參閱

NDIS_MAKE_NET_LUID

NET_IF_INFORMATION

NET_LUID

NdisIfDeregisterInterface

NdisIfRegisterProvider

ProtocolBindAdapterEx