PxeDhcpIsValid 函式 (wdspxe.h)
驗證封包是否為 DHCP 封包。
語法
DWORD PXEAPI PxeDhcpIsValid(
[in] PVOID pPacket,
[in] ULONG uPacketLen,
[in] BOOL bRequestPacket,
[out] PBOOL pbPxeOptionPresent
);
參數
[in] pPacket
使用 PxePacketAllocate 函式配置的回復封包指標。
[in] uPacketLen
pPacket參數指向的封包長度。
[in] bRequestPacket
指出封包是否為要求封包。 下表列出可能的值。
值 | 意義 |
---|---|
|
要驗證的封包是來自用戶端的要求封包。 |
|
要驗證的封包是由伺服器產生的封包。 |
[out] pbPxeOptionPresent
如果封包是有效的 DHCP 封包,且包含廠商類別識別碼選項 (60) ,且值設定為 「PXEClient」,則 BOOL 的位址會設定為 TRUE 。
傳回值
如果函式成功,傳回值會 ERROR_SUCCESS。
備註
當具有 PxeProviderSetAttribute 函式的篩選準則集設定為接收所有封包時,提供者會使用此函式,以判斷指定的封包是否為有效的 DHCP 封包。 提供者也可以使用此函式來驗證回復封包;這通常只會針對提供者的偵錯或測試組建完成。
驗證測試包含下列測試。
DHCP 欄位 | 初始化的值 |
---|---|
作業 (作業) | 如果 bClientRequest 參數為 TRUE,此欄位必須是 1 (BOOTP 要求) ,否則此欄位必須是 2 (BOOTP 回復) 。 |
硬體位址長度 (hlen) | 必須小於或等於 16。 |
主機名稱 (sname) | 必須是 Null 終止。 |
開機檔案名 (檔案) | 必須是 Null 終止。 |
Magic Cookie (前 4 個八位自動) | 必須包含有效的 DHCP Magic Cookie (99 130 83 99) 。 |
選項長度 | 所有選項都必須具有有效的長度,而且不會覆寫封包。 |
DHCP 訊息類型 (53) | 必須存在。 |
結束選項 (255) | 封包必須以 DHCP 結束選項結束。 由於封包長度下限,封包可能會較大,但沒有選項可能遵循結束選項。 |
規格需求
最低支援的用戶端 | 都不支援 |
最低支援的伺服器 | Windows Server 2008、Windows Server 2003 SP2 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wdspxe.h |
程式庫 | WdsPxe.lib |
Dll | WdsPxe.dll |