Jump to content

MMProgRef - VSD Commands

From EDM2
Revision as of 01:33, 9 June 2025 by Martini (talk | contribs)

Reprint Courtesy of International Business Machines Corporation, © International Business Machines Corporation

Multimedia Programming Reference
  1. Introduction
  2. What's New...
  3. MCI Functions
  4. High-Level Macro Service Functions
  5. Subsystem Messages
  6. Notification Messages
  7. MCI Command Messages
  8. String Commands
  9. Memory Playlist Commands
  10. Graphic Button Control
  11. Secondary Window Functions
  12. MMIO Functions
  13. MMIO Messages
  14. CODEC Messages
  15. DIVE Functions
  16. Real-Time MIDI Functions
  17. SPI Functions
  18. Data Stream State Table
  19. SMH Messages
  20. DDCMD Messages
  21. VSD Commands
  22. SHD Messages
  23. SHC Messages
  24. Data Types
  25. Types of MIDI Messages
  26. Multimedia Specification Overview
  27. Resource Interchange File Format
  28. Multimedia File Formats
  29. RIFF Compound Files and Elements - Sharing and Access
  30. Return Codes
  31. Notices
  32. Glossary

The vendor-specific driver (VSD) interface is a generic device-driver like interface that effectively decomposes the high-level media control interface functions into more fundamental operations. The VSD layer resides in Ring 3 and provides a low-level function set that can keep pace with demanding data control and transport requirements. A Ring 3 stream handler can use the VSD_DDCMD command (described in this section) for data transportation. For this Ring 3 DLL interface, all pointers are 0:32 linear.

Note: Refer to the MMPM/2 Device Driver Reference for a complete description of the VSD interface definitions.

The interface to the VSD is a specific entry point-VSDEntry. First, issue DosLoadModule for the VSD's DLL. The DosLoadModule function returns a handle for the VSD. Next, using the VSD handle, call DosQueryProcAddr to receive the VSD entry point address. This must be done prior to issuing any VSD commands. Once the entry point address is received, calls to the VSD can be made with VSDEntry.