Jump to content

VSD DDCMD

From EDM2
Revision as of 00:57, 9 June 2025 by Martini (talk | contribs) (Created page with "Stream handlers can communicate with their attached devices using the VSD_DDCMD calls. The DDCMD interface is the primary method of moving data to and from devices in OS/2 multimedia. This command is sent using VSDEntry as follows: VSDEntry(hvsd, ulFunc, ulFlags, pRequest) hvsd (HVSD) Handle to a VSD instance. ulFunc (ULONG) Set to VSD_DDCMD. ulFlags (ULONG) The following flags (subcommands) are defined for this command:...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Stream handlers can communicate with their attached devices using the VSD_DDCMD calls. The DDCMD interface is the primary method of moving data to and from devices in OS/2 multimedia.

This command is sent using VSDEntry as follows:

   VSDEntry(hvsd, ulFunc, ulFlags, pRequest)
   hvsd (HVSD)
       Handle to a VSD instance. 
   ulFunc (ULONG)
       Set to VSD_DDCMD. 
   ulFlags (ULONG)
       The following flags (subcommands) are defined for this command:
       DDCMD_CONTROL
           This subcommand of VSD_DDCMD performs a device-specific command. pRequest is a pointer to the DDCMDCONTROL structure. DDCMD_DEREG_STREAM
           This subcommand of VSD_DDCMD deregisters a stream instance with the device driver. pRequest is a pointer to DDCMDDEREGISTER structure. DDCMD_READ
           This subcommand of VSD_DDCMD is used by a stream handler to give an empty buffer to the VSD (for example, during a record operation). When the buffer has been filled, the VSD is responsible for communicating to the caller that the buffer has been filled. The VSD should pass a MSG_REPORTINT structure to the pSHDEntryPoint in DDCMDREGISTER to inform the caller.
           pRequest is a pointer to DDCMDREADWRITE structure. 
       DDCMD_REG_STREAM
           This subcommand of VSD_DDCMD registers a stream instance with the device driver. pRequest is a pointer to DDCMDREGISTER structure. DDCMD_SETUP
           This subcommand of VSD_DDCMD performs device-specific stream instance setup. pRequest is a pointer to DDCMDSETUP structure. DDCMD_STATUS
           This VSD subcommand requests streaming status from a device. Typically, it is called to request the current stream time. pRequest is a pointer to DDCMDSTATUS structure. DDCMD_WRITE
           This VSD subcommand is used by a stream handler to give a full buffer to the VSD (for example, during a playback operation). When the buffer has been consumed, the VSD is responsible for communicating to the caller that the buffer has been used. The VSD should pass a MSG_REPORTINT structure to the pSHDEntryPoint in DDCMDREGISTER to inform the caller.
           pRequest is a pointer to DDCMDREADWRITE structure. 
       pRequest (PVOID)
           The value of pRequest varies according to the ulFlags value. See each particular ulFlags value for the definition of pRequest. 

Returns

       rc (ULONG)
           Possible error codes vary according to the value of ulFlags.