Jump to content

VSD DDCMD: Difference between revisions

From EDM2
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:..."
 
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
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.
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:
==Syntax==
VSDEntry(hvsd, ulFunc, ulFlags, pRequest)


    VSDEntry(hvsd, ulFunc, ulFlags, pRequest)
==Parameters==
;''hvsd'' (HVSD)
:Handle to a VSD instance.


    hvsd (HVSD)
;''ulFunc'' (ULONG)
        Handle to a VSD instance.  
:Set to VSD_DDCMD.  


    ulFunc (ULONG)
;''ulFlags'' (ULONG)
        Set to VSD_DDCMD.
:The following flags (subcommands) are defined for this command:


    ulFlags (ULONG)
:;DDCMD_CONTROL
        The following flags (subcommands) are defined for this command:
::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.


        DDCMD_CONTROL
;pRequest (PVOID)
            This subcommand of VSD_DDCMD performs a device-specific command. pRequest is a pointer to the DDCMDCONTROL structure. DDCMD_DEREG_STREAM
:The value of pRequest varies according to the ulFlags value. See each particular ulFlags value for the definition of pRequest.
            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==
==Returns==
        rc (ULONG)
;''rc'' (ULONG)
            Possible error codes vary according to the value of ulFlags.
:Possible error codes vary according to the value of ulFlags.

Latest revision as of 01:03, 9 June 2025

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.

Syntax

VSDEntry(hvsd, ulFunc, ulFlags, pRequest)

Parameters

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.