Note NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.
NDIS_SET_PACKET_TIME_RECEIVED sets the TimeReceived value in the out-of-band data block associated with a given packet descriptor.
VOID NDIS_SET_PACKET_TIME_RECEIVED( _In_ PNDIS_PACKET Packet, _In_ ULONGLONG TimeReceived );
- Packet [in]
Pointer to a packet descriptor allocated by the caller for receive indications.
- TimeReceived [in]
Specifies the system time at which the packet was received from the remote node on the network.
Drivers can use NDIS_SET_PACKET_TIME_RECEIVED to set this timestamp in the out-of-band data block associated with a packet descriptor before calling NdisMIndicateReceivePacket. Miniports that indicate multipacket receives can set the TimeReceived values for each packet in an indicated array to the same value before making an indication, particularly if the NIC has no internal clock, so the NIC driver calls NdisGetCurrentSystemTime.
All timestamps set in the NDIS_PACKET_OOB_DATA blocks associated with packet descriptors are expressed in system time units as the number of 100-nanosecond intervals since January 1, 1601. A driver can call NdisGetCurrentSystemTime to supply the TimeReceived argument to NDIS_SET_PACKET_TIME_RECEIVED.
When a protocol driver's ProtocolReceivePacket function is called with such an indication, it can use NDIS_GET_TIME_RECEIVED to retrieve the TimeReceived timestamp using the Packet pointer it is given on entry.
If the ProtocolReceive function is called with an indicated packet descriptor for which the underlying driver set the TimeReceived timestamp, ProtocolReceive can call NdisGetReceivedPacket and NDIS_GET_ORIGINAL_PACKET to get the packet that contains this timestamp.