184{
188 PCHAR SenderHWAddress, SenderProtoAddress, TargetProtoAddress;
194
196
198
203 {
206 return;
207 }
209
215 {
218 return;
219 }
220
222
223
227 return;
228 }
229
230
234 return;
235 }
236
240 if (!DataBuffer)
241 {
244 return;
245 }
246
252 {
256 return;
257 }
258
259 SenderHWAddress = (
PVOID)(DataBuffer);
260 SenderProtoAddress = (
PVOID)(SenderHWAddress +
Header->HWAddrLen);
261 TargetProtoAddress = (
PVOID)(SenderProtoAddress +
Header->ProtoAddrLen +
Header->HWAddrLen);
262
265 {
268 return;
269 }
270
272
273
275 if (NCE) {
276
277
279 } else {
280
281
282
285 }
286
288 {
291 return;
292 }
293
294
295
304 SenderHWAddress,
305 SenderProtoAddress,
307 if (NdisPacket) {
310 NdisPacket,
311 0,
312 SenderHWAddress,
314 }
315
318}
#define AddrInitIPv4(IPAddress, RawAddress)
BOOLEAN AddrIsEqual(PIP_ADDRESS Address1, PIP_ADDRESS Address2)
struct ARP_HEADER * PARP_HEADER
#define ARP_OPCODE_REQUEST
UINT CopyPacketToBuffer(PUCHAR DstData, PNDIS_PACKET SrcPacket, UINT SrcOffset, UINT Length)
#define TI_DbgPrint(_t_, _x_)
struct _IP_INTERFACE * PIP_INTERFACE
PNDIS_PACKET PrepareARPPacket(PIP_INTERFACE IF, USHORT HardwareType, USHORT ProtocolType, UCHAR LinkAddressLength, UCHAR ProtoAddressLength, PVOID SenderLinkAddress, PVOID SenderProtoAddress, PVOID TargetLinkAddress, PVOID TargetProtoAddress, USHORT Opcode)
VOID ARPTransmitComplete(PVOID Context, PNDIS_PACKET NdisPacket, NDIS_STATUS NdisStatus)
#define ExAllocatePoolWithTag(hernya, size, tag)
#define ExAllocatePool(type, size)
_In_ NDIS_HANDLE _In_ PNDIS_PACKET Packet
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
_In_ UINT _In_ UINT _In_ PNDIS_PACKET _In_ UINT _Out_ PUINT BytesCopied
PNEIGHBOR_CACHE_ENTRY NBLocateNeighbor(PIP_ADDRESS Address, PIP_INTERFACE Interface)
PNEIGHBOR_CACHE_ENTRY NBAddNeighbor(PIP_INTERFACE Interface, PIP_ADDRESS Address, PVOID LinkAddress, UINT LinkAddressLength, UCHAR Type, UINT EventTimer)
#define ARP_COMPLETE_TIMEOUT
VOID NBUpdateNeighbor(PNEIGHBOR_CACHE_ENTRY NCE, PVOID LinkAddress, UCHAR State)
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface