Sending and Receiving Packet Arrays
IrDA miniport drivers should support sending and receiving packet arrays as described in the following.
An IrDA miniport driver should implement a MiniportSendPacketsfunction to transmit an array of packets over the network. IrLAP calls the NdisSendPacketsfunction to send an array of packet descriptors to the underlying IrDA miniport driver. Each of these packet descriptors have associated out-of-band (OOB) information. The IrDA miniport driver can retrieve and use information that is specific to the infrared media from the OOB data block, NDIS_PACKET_OOB_DATA.
After packets arrive from a remote station, a NIC's transceiver receives those incoming packets and then passes interrupts to NDIS. NDIS, in turn, calls a particular routine to service those interrupts. The IrDA miniport driver for the NIC should implement MiniportIsrand MiniportHandleInterruptfunctions to handle interrupts for incoming packets. To indicate packets to the IrDA protocol driver, the IrDA miniport driver sets information that is specific to the infrared media in the OOB data block for each packet and calls the NdisMIndicateReceivePacketfunction.
The IrDA miniport driver should use the macros that NDIS provides to set and retrieve OOB data. For more information about OOB data and accessing OOB data, see Packet Out-Of-Band Data.
The MediaSpecificInformationmember of the OOB data block points to a structure of type MEDIA_SPECIFIC_INFORMATION. This structure, in turn, has a ClassInformation member that is a structure of type NDIS_IRDA_PACKET_INFO, which is defined as follows:
typedef struct _NDIS_IRDA_PACKET_INFO{
UINT ExtraBOFs;
UINT MinTurnAroundTime;
} NDIS_IRDA_PACKET_INFO, *PNDIS_IRDA_PACKET_INFO;
The ExtraBOFs member specifies the number of extra Beginning of Frame (BOF) flags that is added to the packet for transmission. For more information, see Receiver Synchronization.
The MinTurnAroundTime member specifies the minimum transmission-delay time for the packet. For more information, see Communication Link Turnaround Times.