SendPacketsToMstcp

BOOL CNdisApi::SendPacketsToMstcp ( PETH_M_REQUEST pPacket ) const;

Return Value:
TRUE if call was successful, FALSE otherwise

Parameters:
pPacket
Pointer to the user allocated and initialized ETH_M_REQUEST structure.

Remarks:
The following fields of ETH_M_REQUEST must be initialized:

  • ETH_M_REQUEST.hAdapterHandle must be set to the interface handle (obtained via call to CNdisApi::GetTcpipBoundAdaptersInfo) from which you would like to simulate receive.
  • ETH_M_REQUEST.dwPacketsNumber must be set to the number of initialized NDISRD_ETH_Packet structures in EthPacket array
  • ETH_M_REQUEST.EthPacket[].Buffer must point to the user allocated and initialized INTERMEDIATE_BUFFER structure

The following fields of the INTERMEDIATE_BUFFER should be initialized:

  • INTERMEDIATE_BUFFER.m_IBuffer should contain Ethernet packet
  • INTERMEDIATE_BUFFER.m_Length should be initialized to the actual length of the packet

This member calls the filter driver with IOCTL_NDISRD_SEND_PACKETS_TO_MSTCP control code (see details below).

IOCTL_NDISRD_SEND_PACKETS_TO_MSTCP

Input Buffer_ETH_M_REQUEST
Input Buffer Sizesizeof(ETH_M_REQUEST) + sizeof(NDISRD_ETH_Packet) * (dwPacketsNumber - 1)
Output BufferNone
Output Buffer Size0

For a WOW64 caller, the library constructs the corresponding ETH_M_REQUEST_WOW64 and NDISRD_ETH_Packet_WOW64 payloads and converts adapter handles and packet buffers.