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 |
---|---|
|
作業已成功完成。 |
|
作業失敗,因為資源不足。 |
|
NdisIfRegisterInterface 失敗,因為某些輸入參數無效。 |
|
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) |