File Stream

In computing, a “file” is a fundamental Input/Output (IO) primitive offered by operating systems, representing an abstract device that supports standardized read and write operations. Beyond physical files on disk, this abstraction includes various IO endpoints such as pipes, sockets, mailslots, and specialized device drivers. The File Stream plugin facilitates direct interactions with these file-like objects. By bridging software applications and various IO streams, the plugin enhances communication flexibility and simplifies complex data handling.

Basic Setup

  1. In IO Ninja, click the “New Session” dropdown and select a new “File Stream” session
_images/file-stream-new-session.png
  1. Enter the name of your file, e.g. a pipe or mailslot into the “File:” field.
_images/file-stream-file.png
  1. Set the file access setting from the “Access:” dropdown menu.
_images/file-stream-access.png
  1. Press the “Open” button to the right of the “File:” and “Access:” fields.
_images/file-stream-open.png
  1. Communicate with the file as required using the Transmit pane.
_images/file-stream-transmit.png

Settings

_images/file-stream-settings.png
Setting Description Default
File name Specify the file name to open.  
Access mode Access mode for the file, e.g., “Read/Write”, “Read-only”, and “Write-only”. Read/Write
Read parallelism Maximum number of read requests to submit to tdevmon at the same time. Having more than one pending read at a time helps prevent notification loss in IO-intensive scenarios (after filling one user buffer, tdevmon can immediately switch to the next one without any waiting). Increasing this number beyond 4 usually won’t yield any extra gains. 4
Read block size (B) The size of each individual read block submitted to tdevmon. 4KB
RX buffer size (B) The full size of the incoming data (RX) buffer. Affects read throughput. 16KB
TX buffer size (B) The full size of the outbound data (TX) buffer. Affects write throughput. 16KB
Keep read block size Don’t merge read blocks in RX buffer. Incoming data blocks coming in quick succession can be merged together so that IO Ninja writes them to log as a whole. When this option is set to True, blocks are written to the log without merging, i.e., exactly as they are received from the underlying transport.. False
Keep write block size Don’t merge write blocks in TX buffer. Outbound data blocks sent in quick succession can be merged together before submission to the underlying transport. When this option is set to True, blocks are submitted to the transport without merging, i.e., exactly as they are sent by the Transmit or Script panes.. False
RX buffer full notifications Toggle warnings in log about the incoming data (RX) buffer getting full. False