LPDHCP_DROP_SEND回呼函式 (dhcpssdk.h)

語法

LPDHCP_DROP_SEND LpdhcpDropSend;

DWORD LpdhcpDropSend(
  [in, out] LPBYTE *Packet,
  [in, out] DWORD *PacketSize,
  [in]      DWORD ControlCode,
  [in]      DWORD IpAddress,
  [in]      LPVOID Reserved,
  [in]      LPVOID PktContext
)
{...}

參數

[in, out] Packet

緩衝區的指標,大小為 4Kb,其中包含封包。

注意 不建議直接寫入此緩衝區。
 

[in, out] PacketSize

Packet 參數大小的指標,以位元組為單位。

[in] ControlCode

控制程式代碼,指定卸除的原因。 請參閱<備註>。

[in] IpAddress

因特網通訊協定 (接收封包之套接字的IP) 位址。 IP 位址會依主機順序排列。

[in] Reserved

保留供未來使用。

[in] PktContext

識別封包的內容,如先前 DhcpNewPktHook 函數調用的 PktContext 參數中提供。

傳回值

傳回值是由提供回呼的應用程式所定義。

備註

當 DHCP 封包卸除或完全處理封包時,Microsoft DHCP Server 會呼叫 DhcpPktDropHook 函式。 DhcpPktDropHook 是由註冊重要 Microsoft DHCP 伺服器事件通知的第三方 DLL 所實作。

DhcpPktDropHook 函式不應該封鎖。

註冊此事件通知的第三方 DLL 應該準備好讓其 DhcpPktDropHook 函式針對每個封包呼叫多次。 如果 Microsoft DHCP Server 卸除封包,則會針對該封包呼叫兩次此函式:一次通知封包已卸除,然後再次識別封包已完全處理。

下表定義 ControlCode 參數中傳回的可能控件代碼。

控制程序代碼 Description
DHCP_DROP_DUPLICATE 封包是 DHCP 伺服器所接收的另一個封包復本。
DHCP_DROP_NOMEM 沒有足夠的記憶體可用來處理封包。
DHCP_DROP_INTERNAL_ERROR 發生非預期的內部錯誤。
DHCP_DROP_TIMEOUT 封包太舊而無法處理。
DHCP_DROP_UNAUTH 伺服器未獲授權處理此封包。
DHCP_DROP_PAUSED 伺服器已暫停。
DHCP_DROP_NO_SUBNETS 沒有設定子網,因此沒有處理封包的點。
DHCP_DROP_INVALID 封包無效,或是在無效的套接字上收到。
DHCP_DROP_WRONG_SERVER 封包已傳送至錯誤的 DHCP 伺服器。
DHCP_DROP_NOADDRESS 沒有提供位址。
DHCP_DROP_PROCESSED 封包已經過處理。
DHCP_DROP_GEN_FAILURE 發生未知的錯誤。
 

在 Microsoft DHCP Server 傳送回應給用戶端之前,Microsoft DHCP Server 會直接呼叫 DhcpPktSendHook 函式。 註冊 DhcpPktSendHook 通知可讓第三方開發人員藉由操作封包指標來改變 Microsoft DHCP 伺服器的回應。 DhcpPktSendHook 是由註冊重要 Microsoft DHCP 伺服器事件通知的第三方 DLL 所實作。

DhcpPktSendHook 函式不應該封鎖。

DhcpPktSendHook 函式不應該封鎖。

規格需求

需求
最低支援的用戶端 都不支援
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 dhcpssdk.h

另請參閱

DHCP_CALLOUT_TABLE

DhcpNewPktHook