示例#1
0
 public unsafe void SendPacket(Packets.Packet pkt)
 {
     bool worked = false;
     if (pkt.Outbound)
     {
         ETH_REQUEST Request = new ETH_REQUEST();
         INTERMEDIATE_BUFFER* ib = pkt.IB;
         Request.EthPacket.Buffer = (IntPtr)ib;
         Request.hAdapterHandle = adapterHandle;
         if (!Ndisapi.SendPacketToAdapter(hNdisapi, ref Request))
         {
             worked = false;
         }
         else
         {
             worked = true;
         }
     }
     else
     {
         ETH_REQUEST Request = new ETH_REQUEST();
         INTERMEDIATE_BUFFER* ib = pkt.IB;
         Request.EthPacket.Buffer = (IntPtr)ib;
         Request.hAdapterHandle = adapterHandle;
         worked = Ndisapi.SendPacketToMstcp(hNdisapi, ref Request);
     }
     if (pkt.CodeGenerated)
         pkt.ClearGeneratedPacket();
 }