Win32 API 日本語リファレンス
ホーム › NetworkManagement.Dhcp › LPDHCP_DROP_SEND

LPDHCP_DROP_SEND

コールバック

シグネチャ

DWORD LPDHCP_DROP_SEND(
    BYTE** Packet,
    DWORD* PacketSize,
    DWORD ControlCode,
    DWORD IpAddress,
    void* Reserved,
    void* PktContext
);

パラメーター

フィールド型説明
PacketBYTE**

パケットを格納する、サイズ 4KB のバッファーへのポインターです。

メモ このバッファーに直接書き込むことは推奨されません。
PacketSizeDWORD*Packet パラメーターのサイズ (バイト単位) へのポインターです。
ControlCodeDWORD破棄の理由を示す制御コードです。「解説」を参照してください。
IpAddressDWORDパケットを受信したソケットのインターネット プロトコル (IP) アドレスです。IP アドレスはホスト バイト オーダーです。
Reservedvoid*将来の使用のために予約されています。
PktContextvoid*パケットを識別するコンテキストです。以前の DhcpNewPktHook 関数呼び出しの PktContext パラメーターで指定されたものです。

公式ドキュメント

LPDHCP_DROP_SEND コールバック関数

戻り値

戻り値は、コールバックを提供するアプリケーションによって定義されます。

解説(Remarks)

DhcpPktDropHook 関数は、DHCP パケットが破棄されたとき、またはパケットの処理が完全に終了したときに、Microsoft DHCP Server によって呼び出されます。 DhcpPktDropHook は、Microsoft DHCP Server の重要なイベントの通知を受け取るために登録されたサードパーティ製 DLL によって実装されます。

DhcpPktDropHook 関数は、ブロックしてはなりません。

このイベントの通知を受け取るために登録するサードパーティ製 DLL は、1 つのパケットについて DhcpPktDropHook 関数が複数回呼び出されることに備えてください。Microsoft DHCP Server がパケットを破棄した場合、そのパケットに対してこの関数は 2 回呼び出されます。1 回はパケットが破棄されたことを通知するため、もう 1 回はパケットの処理が完全に終了したことを示すためです。

次の表に、ControlCode パラメーターで返される可能性のある制御コードを示します。

制御コード 説明
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 不明なエラーが発生しました。

DhcpPktSendHook 関数は、Microsoft DHCP Server がクライアントに応答を送信する直前に、Microsoft DHCP Server によって呼び出されます。 DhcpPktSendHook の通知を受け取るために登録すると、サードパーティの開発者はパケットのポインターを操作して Microsoft DHCP Server の応答を変更できます。 DhcpPktSendHook は、Microsoft DHCP Server の重要なイベントの通知を受け取るために登録されたサードパーティ製 DLL によって実装されます。

DhcpPktSendHook 関数は、ブロックしてはなりません。

DhcpPktSendHook 関数は、ブロックしてはなりません。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)