Jump to content

MMIOM_BEGINSTREAM

From EDM2

The MMIOM_BEGINSTREAM message is sent to a Multimedia I/O (MMIO) procedure before the first streaming `mmioRead` or `mmioWrite` call. This optimizes the data transfer rate for the file or network resource by establishing Quality of Service (QOS) guidelines.

Syntax

rc = mmioSendMessage(hmmio, MMIOM_BEGINSTREAM, lParam1, (LONG)pParam2);

Parameters

pmmioinfo (PMMIOINFO)
A pointer to an MMIOINFO data structure maintaining the current state of the open file.
usMsg (USHORT)
The message identifier, set to `MMIOM_BEGINSTREAM`.
lParam1 (LONG)
Specifies the direction of the stream flow:
  • STREAM_READ: Read stream from the server to the client.
  • STREAM_WRITE: Write stream from the client to the server.
pParam2 (PQOSInfo)
A pointer to a QOSInfo structure. This structure encapsulates a variable-length array of QOS structures defining network or device transfer guarantees.

Return Value

rc (ULONG)
Return codes indicating success or the type of failure:
  • MMIO_SUCCESS: The I/O procedure successfully placed the channel into streaming mode.
  • MMIOERR_UNSUPPORTED_MESSAGE: The I/O procedure does not support network streaming or a required QOS parameter was omitted.
  • MMIOERR_QOSUNAVAILABLE: The requested Quality of Service cannot be provisioned by the current network or system constraints.
  • MMIO_ERROR: The streaming handshake failed due to a generic or device-specific error.

Remarks

The OS/2 Multimedia subsystem leverages Quality of Service parameters as an extensible list to gracefully adapt to evolving hardware and network bandwidth topologies.

Each QOS element passed via pParam2 contains an identifier (`lQOSParmId`) and an associated descriptor value (`lQOSValue`).

Supported QOS Identifiers
  • SERVICE_REQUEST: Determines the rigidity of the resource reservation. Its value must be one of the following:
  • `GUARANTEED`: The required throughput must be fulfilled. If the system cannot guarantee it, the connection fails.
  • `DONTCARE`: The application prefers the specified profile but can fall back to standard best-effort allocation.
  • `DONTRESERVE`: The system treats the request as a basic connection without special tracking.
  • MAX_EE_JITTER: Sets the maximum number of stream buffers assigned to compensate for end-to-end network jitter.
  • MAX_DATA_RATE: Specifies the ceiling bandwidth constraint in bytes per second.
  • AVG_DATA_RATE: Specifies the target baseline throughput in bytes per second.

Related Functions

Related Messages