21#define ICMP_TYPE_ECHO_REPLY 0
22#define ICMP_TYPE_DEST_UNREACH 3
23#define ICMP_TYPE_SOURCE_QUENCH 4
24#define ICMP_TYPE_REDIRECT 5
25#define ICMP_TYPE_ECHO_REQUEST 8
26#define ICMP_TYPE_TIME_EXCEEDED 11
27#define ICMP_TYPE_PARAMETER 12
28#define ICMP_TYPE_TIMESTAMP_REQUEST 13
29#define ICMP_TYPE_TIMESTAMP_REPLY 14
30#define ICMP_TYPE_INFO_REQUEST 15
31#define ICMP_TYPE_INFO_REPLY 16
34#define ICMP_CODE_DU_NET_UNREACH 0
35#define ICMP_CODE_DU_HOST_UNREACH 1
36#define ICMP_CODE_DU_PROTOCOL_UNREACH 2
37#define ICMP_CODE_DU_PORT_UNREACH 3
38#define ICMP_CODE_DU_FRAG_DF_SET 4
39#define ICMP_CODE_DU_SOURCE_ROUTE_FAILED 5
42#define ICMP_CODE_RD_NET 0
43#define ICMP_CODE_RD_HOST 1
44#define ICMP_CODE_RD_TOS_NET 2
45#define ICMP_CODE_RD_TOS_HOST 3
48#define ICMP_CODE_TE_TTL 0
49#define ICMP_CODE_TE_REASSEMBLY 1
52#define ICMP_CODE_TP_POINTER 1
_In_ PIO_STACK_LOCATION IrpSp
NTSTATUS DispEchoRequest(PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
NTSTATUS ICMPSendDatagram(PADDRESS_FILE AddrFile, PTDI_CONNECTION_INFORMATION ConnInfo, PCHAR BufferData, ULONG DataSize, PULONG DataUsed)
VOID ICMPReceive(PIP_INTERFACE Interface, PIP_PACKET IPPacket)
struct ICMP_HEADER * PICMP_HEADER
VOID ICMPReply(PIP_INTERFACE Interface, PIP_PACKET IPPacket, UCHAR Type, UCHAR Code)
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
_In_ PDEVICE_OBJECT DeviceObject
_In_ UCHAR _In_ UCHAR _In_ ULONG Code
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface