IOCTL_NDISRD_READ_PACKET
This IOCTL reads
packet from the helper driver queue.
| Input
Buffer
|
_ETH_REQUEST
|
| Input Buffer
Size
|
sizeof
(_ETH_REQUEST)
|
| Output Buffer
|
_ETH_REQUEST
|
| Output Buffer
Size
|
sizeof
(_ETH_REQUEST)
|
Remarks:
For this call the
following fields of ETH_REQUEST must be initialized:
- ETH_REQUEST.hAdapterHandle
must be set to the interface handle (obtained via call to
CNdisApi::GetTcpipBoundAdaptersInfo). The packet will be extracted
from the network interface associated packet queue. Remember that
packets queued only when network interface in the filtering of
listening mode.
- ETH_REQUEST.EthPacket.Buffer
must point to the user allocated INTERMEDIATE_BUFFER
structure
The following fields
of the INTERMEDIATE_BUFFER are initialized by helper driver in case
of success:
- INTERMEDIATE_BUFFER.m_IBuffer
contains Ethernet packet
- INTERMEDIATE_BUFFER.m_Length
contains the actual length of the packet
- INTERMEDIATE_BUFFER.m_Flags
is a combination of NDIS_FLAGS_XXX (defined in ndis.h). These flags
are copied from the NDIS_PACKET.Private.Flags.
- INTERMEDIATE_BUFFER.m_dwDeviceFlags
is PACKET_FLAG_ON_SEND if packet goes from MSTCP to network
interface or PACKET_FLAG_ON_RECEIVE otherwise.
|