BOOL CNdisApi::SendPacketsToAdapter ( PETH_REQUEST pPacket );

Return Value:
TRUE if call was successful, FALSE otherwise

Pointer to the user allocated and initialized ETH_M_REQUEST structure.

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) to which you would like to send packets.
  • 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
  • INTERMEDIATE_BUFFER.m_Flags should be initialized by combination of NDIS_FLAGS_XXX (defined in ndis.h). Look at these flags for details. Note, that these flags usually don’t work for the old NDIS versions.

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


Input Buffer_ETH_M_REQUEST
Input Buffer Sizesizeof (_ETH_M_REQUEST)
Output BufferNone
Output Buffer Size0