NdisReadNetworkAddress 函式 (ndis.h)
NdisReadNetworkAddress 函式會傳回軟體可設定的網路位址,該位址儲存在機器中時儲存在 NIC 的登錄中。
語法
void NdisReadNetworkAddress(
[out] PNDIS_STATUS Status,
[out] PVOID *NetworkAddress,
[out] PUINT NetworkAddressLength,
[in] NDIS_HANDLE ConfigurationHandle
);
參數
[out] Status
呼叫端提供之變數的指標,此變數會傳回呼叫的狀態為下列其中一項:
NDIS_STATUS_SUCCESS
呼叫端可以使用 在 NetworkAddress 傳回的 NIC 位址。
NDIS_STATUS_FAILURE
呼叫端的登錄 Parameters 機碼中沒有可用的NIC位址資訊,或儲存的值不是字串。
[out] NetworkAddress
呼叫端所提供變數的指標,如果呼叫成功,此函式會傳回緩衝區的指標,其中包含網路位址 (通常儲存為位元組整數序列的 MAC 位址) 。
[out] NetworkAddressLength
呼叫端提供的變數指標,此變數會傳回 NetworkAddress 所傳回的位元組數目。
[in] ConfigurationHandle
傳回的組態句柄 NdisOpenConfigurationEx 函 式。
傳回值
無
備註
NdisReadNetworkAddress 會搜尋指定 ConfigurationHandle 針對關鍵詞 NetworkAddress 所指定的登錄 Parameters 機碼、將此字元串類型專案的值轉換成位元組整數序列,並在內部儲存要求的資訊。 NDIS 為這類位址配置的記憶體會維持有效狀態,直到迷你埠驅動程式呼叫 NdisCloseConfiguration 函式 ,以釋放記憶體。
除非 NdisReadNetworkAddress 在 Status 傳回NDIS_STATUS_SUCCESS,否則呼叫端無法使用 NetworkAddress 上的變數做為指標。
支持軟體設定網路尋址之 NIC 的安裝程式應該在 HKLM\System\CurrentControlSet\Control\Class{4d36e972...} 中使用 NetworkAddress 關鍵詞儲存名為 的值專案登錄的 \00xx 機碼。
NIC 安裝程式通常會將 NetworkAddress 專案的值儲存在登錄中,做為十六進位數位字串。 安裝程式可以選擇性地將這類位址儲存為配對數位字串,每個配對都會以連字元隔開。 NdisReadNetworkAddress 會捨棄連字元,並將每個這類配對轉換成單一位元組。
在任一形式中, NdisReadNetworkAddress 會將指定的位址一次轉換成對等的整數,直到字串耗盡為止。
在 Windows 2000 和更新版本的登錄中,這類已安裝的位址字串包含 Unicode 字元。
請注意,NDIS 不會在 NetworkAddress 驗證值。 NDIS 不保證此值是有效的位址、值具有適當的長度,或甚至值是網路位址。 因此,NdisReadNetworkAddress 的呼叫端不得對此值進行任何假設,而且必須自行驗證值。 如果呼叫端判斷值超出界限,則不應該使用 值;相反地,它應該使用永久媒體訪問控制 (MAC) 位址或預設位址。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 在 Windows Vista 和更新版本中支援 NDIS 6.0 和更新版本的驅動程式。 (支援 NDIS 5.1 驅動程式,請參閱 Windows XP 和更新版本中的 NdisReadNetworkAddress (NDIS 5.1) ) 。 |
目標平台 | Universal |
標頭 | ndis.h (包含 Ndis.h) |
程式庫 | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | Irql_Miscellaneous_Function (ndis) |