SHC Messages

Stream handler command messages are provided by each stream handler in the Sync/Stream subsystem. Stream handlers can be DLLs or device drivers. All SHC messages are synchronous and must be provided by both DLL stream handlers (as a DLL call) and by device driver stream handlers as an inter-device driver communication (IDC) call. SHC messages are issued only from the Sync/Stream Manager and are not used directly by an application media control device.

The stream handler commands are provided through a single entry point, SHCEntryPoint, which accepts a parameter structure as input. This permits the DLL and the device driver interfaces to the Sync/Stream Manager to be the same. The entry point for DLL stream handlers is registered with the Sync/Stream Manager DLL during the stream handler DLL initialization routine called by the loader. The entry point for the device driver stream handlers is registered with the Sync/Stream Manager device driver during device driver initialization. For the DLL interface, all pointers are 0:32 linear. For the device driver interface, pointers are 16:16 or 0:32 physical or global linear. This enables the current 16-bit device driver model to be used for stream handlers.

The following table lists the message numbers for all stream handler commands (SHCs) that must be supported by all stream handlers. These are used in the ulFunction field, of the parameter structure passed with the call, to indicate which message is being requested by the Sync/Stream Manager.

┌────────┬──────────────────────────┬──────────────────────────┐
│Message │Message                   │Description               │
│Number  │                          │                          │
├────────┼──────────────────────────┼──────────────────────────┤
│0L      │SHC_ASSOCIATE             │Associates a data object  │
│        │                          │with a stream handler.    │
├────────┼──────────────────────────┼──────────────────────────┤
│1L      │SHC_CLOSE                 │Closes a stream handler.  │
├────────┼──────────────────────────┼──────────────────────────┤
│2L      │SHC_CREATE                │Creates a stream instance │
│        │                          │for a stream handler.     │
├────────┼──────────────────────────┼──────────────────────────┤
│3L      │SHC_DESTROY               │Removes a stream instance │
│        │                          │for a stream handler.     │
├────────┼──────────────────────────┼──────────────────────────┤
│8L      │SHC_DISABLE_EVENT         │Disables event            │
│        │                          │notification for a        │
│        │                          │particular event.         │
├────────┼──────────────────────────┼──────────────────────────┤
│10L     │SHC_DISABLE_SYNC          │Disables synchronization  │
│        │                          │for a stream handler in a │
│        │                          │sync group.               │
├────────┼──────────────────────────┼──────────────────────────┤
│7L      │SHC_ENABLE_EVENT          │Enables event notification│
│        │                          │for a particular event.   │
├────────┼──────────────────────────┼──────────────────────────┤
│9L      │SHC_ENABLE_SYNC           │Enables synchronization   │
│        │                          │for a stream handler in a │
│        │                          │sync group.               │
├────────┼──────────────────────────┼──────────────────────────┤
│14L     │SHC_ENUMERATE_PROTOCOLS   │Returns a list of stream  │
│        │                          │protocol keys for the     │
│        │                          │specified stream handler. │
├────────┼──────────────────────────┼──────────────────────────┤
│12L     │SHC_GET_PROTOCOL          │Queries a stream handler  │
│        │                          │for a specified stream    │
│        │                          │protocol.                 │
├────────┼──────────────────────────┼──────────────────────────┤
│11L     │SHC_GET_TIME              │Queries the current stream│
│        │                          │time.                     │
├────────┼──────────────────────────┼──────────────────────────┤
│13L     │SHC_INSTALL_PROTOCOL      │Installs or removes a     │
│        │                          │specified stream protocol │
│        │                          │for a stream handler.     │
├────────┼──────────────────────────┼──────────────────────────┤
│15L     │SHC_NEGOTIATE_RESULT      │Provides the results of a │
│        │                          │SPCB negotiation for a    │
│        │                          │stream instance.          │
├────────┼──────────────────────────┼──────────────────────────┤
│6L      │SHC_SEEK                  │Seeks to a specified point│
│        │                          │in the stream object or   │
│        │                          │sets the current stream   │
│        │                          │time.                     │
├────────┼──────────────────────────┼──────────────────────────┤
│16L     │SHC_SENDMSG               │Sends specific message to │
│        │                          │stream handler.           │
├────────┼──────────────────────────┼──────────────────────────┤
│4L      │SHC_START                 │Starts data streaming for │
│        │                          │a stream handler of a     │
│        │                          │particular stream         │
│        │                          │instance.                 │
├────────┼──────────────────────────┼──────────────────────────┤
│5L      │SHC_STOP                  │Stops data streaming for a│
│        │                          │stream handler of a       │
│        │                          │particular stream         │
│        │                          │instance.                 │
└────────┴──────────────────────────┴──────────────────────────┘


[Back: SHD_REPORT_INT - Topics]
[Next: SHCEntryPoint]