home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warptlk3.zip / TOOLKIT / INC / SSM.INC < prev    next >
Text File  |  1995-08-30  |  28KB  |  474 lines

  1. ;***************************************************************************  
  2. ;                                                                             
  3. ;  Module Name: SSM.H                                                         
  4. ;                                                                             
  5. ;  OS/2 2.0 Multimedia Extensions Sync/Stream Manager Definitions file        
  6. ;                                                                             
  7. ;  Copyright (c) International Business Machines Corporation 1991, 1992       
  8. ;                         All Rights Reserved                                 
  9. ;                                                                             
  10. ;***************************************************************************  
  11. _SSM_H_    EQU    1
  12.  
  13. MAX_SPI_NAME    EQU    9       ;  Maximum ASCIIZ stream handler name/class    
  14.                              ;  and device driver name                      
  15. ;***************************************************************************  
  16. ;                                                                             
  17. ;   Global Type Declarations                                                  
  18. ;                                                                             
  19. ;***************************************************************************  
  20. ;  The following define was deleted because it conflicts with an OS/2 PM define   
  21. ; typedef HID  FAR *PHID;                Pointer to Stream Handler ID         
  22.  
  23. LOCKH    STRUC
  24. Memory_lock    DB    16 DUP (?)
  25. LOCKH    ENDS
  26. RC    EQU    ULONG                      ;  Used for all return codes            
  27.  
  28. SLAVE    STRUC
  29. slave_hstreamSlave    DD    ?          ;  Handle for this slave              
  30. slave_mmtimeStart    DD    ?           ;  Offset in master stream time to start   
  31. SLAVE    ENDS
  32.  
  33. MASTER    STRUC
  34. master_hstreamMaster    DD    ?         ;  Handle for this master             
  35. MASTER    ENDS
  36.  
  37. HAND    STRUC
  38. hand_szHandlerClass    DB    MAX_SPI_NAME DUP (?) ;  Stream handler class        
  39. hand_szHandlerName    DB    MAX_SPI_NAME DUP (?)  ;  Stream handler name         
  40. HAND    ENDS
  41. INCLUDE spcb.INC
  42. INCLUDE evcb.INC
  43. INCLUDE acb.INC
  44. INCLUDE dcb.INC
  45. ;***************************************************************************  
  46. ;  INI file support defines                                                   
  47. ;***************************************************************************  
  48. ;  RCDATA defines:                                                            
  49. SPI_RESOURCE    EQU    1                ;  RCDATA resource number              
  50. SH_DLL_TYPE    EQU    0                ;  DLL type stream handler             
  51. SH_PDD_TYPE    EQU    1                ;  PDD type stream handler             
  52. SPCBSIZE    EQU    72              ;  SPCB length, the Resource compiler  
  53.                                        ;    doesn't allow sizeof(SPCB).       
  54. ifdef XXXXX
  55. endif
  56. ;***************************************************************************  
  57. ;                                                                             
  58. ;   Function Prototypes for SPI functions                                     
  59. ;   All use Pure C calling convention                                         
  60. ;   Six major categories:                                                     
  61. ;      - stream creation                                                      
  62. ;      - stream control                                                       
  63. ;      - event handling                                                       
  64. ;      - sync handling                                                        
  65. ;      - configuration                                                        
  66. ;      - stream protocol programming                                          
  67. ;***************************************************************************  
  68. ;  The first thing in the pMsg must be the length of the structure!   
  69.  
  70. MSG_COMMON    STRUC
  71. msg_ulMsgLen    DD    ?              ;  length of structure   
  72. MSG_COMMON    ENDS
  73. ;  SpiStopStream() ulFlags defines:                                           
  74. SPI_STOP_STREAM    EQU    0000H          ;  Only stop this one stream       
  75.                                            ;  The default is to pause the data            
  76.                                            ;   stream. No change to data buffers.         
  77.                                            ;   synchronous call (no event notification)   
  78. SPI_STOP_SLAVES    EQU    0001H          ;  Stop this master and any slaves             
  79. SPI_STOP_FLUSH    EQU    0002H          ;  Stop and flush all filled buffers.          
  80.                                            ;   Stops the Src & Tgt SH, lets the           
  81.                                            ;   Tgt SH run until out of buffers            
  82.                                            ;   thereby, "flushing" all buffers.           
  83.                                            ;   Tgt SH stops when out of buffers           
  84.                                            ;   (This is a ASYNCHRONOUS call, event        
  85.                                            ;    notification sent to appl when done.)     
  86. SPI_STOP_DISCARD    EQU    0004H          ;  Stop and discard all filled buffers.        
  87.                                            ;   Stops the Src & Tgt SH                     
  88.                                            ;   then discards all buffers current for      
  89.                                            ;   this stream.                               
  90.                                            ;   (This is a ASYNCHRONOUS call, event        
  91.                                            ;    notification sent to appl when done.)     
  92. ;***************************************************************************  
  93. ;                                                                             
  94. ;   Function Prototypes for SMH functions                                     
  95. ;   All use Pure C calling convention                                         
  96. ;  NOTE ABOUT POINTERS:                                                       
  97. ;   0:32 linear addresses for ring 3 (DLL) stream handlers                    
  98. ;   16:16 selector/offset addresses for ring 0 (PDD) stream handlers          
  99. ;***************************************************************************  
  100.  
  101. SMH_COMMON    STRUC
  102. smhfunc_ulFunction    DD    ?        ;  SMH command function                     
  103. smhfunc_hid    DD    ?               ;  handler ID                               
  104. SMH_COMMON    ENDS
  105. ;***************************************************************************  
  106. SMH_REGISTER    EQU    0               ;  (Valid only from ring 3 stream   
  107.                                                ;   handler)                   
  108.  
  109. PARM_REG    STRUC
  110. smhreg_ulFunction    DD    ?                  ;  SMH command function        
  111. smhreg_pszSHName    DD    ?                   ;  Max size = 8 characters     
  112. smhreg_phidSrc    DD    ?                     ;  (9 including null)          
  113. smhreg_phidTgt    DD    ?
  114. smhreg_pshcfnEntry    DD    ?                 ;  Handler entry point for SHC's    
  115.                                                ;   Only used for Ring 0 handlers.  
  116. smhreg_ulFlags    DD    ?
  117. smhreg_ulMaxNumStreams    DD    ?             ;  Max # of streams            
  118. smhreg_ulMaxNumEvents    DD    ?              ;  Max # of events/stream      
  119. PARM_REG    ENDS
  120. REGISTER_TGT_HNDLR    EQU    0001H          ;  This handler is Target.     
  121. REGISTER_SRC_HNDLR    EQU    0002H          ;  This handler is Source.     
  122.                                                ;  Handlr can be both.         
  123. REGISTER_NONSTREAMING    EQU    0004H          ;  Handler is non-streaming.   
  124. VALIDREGISTERFLAGS    EQU    (REGISTER_TGT_HNDLR  OR  REGISTER_SRC_HNDLR  OR  REGISTER_NONSTREAMING)
  125. ;  Notes:                                                                       
  126. ;   - Since ring 0 (DD) stream handlers can not use the IDC interface to the    
  127. ;     sync/stream manager during DD initialization time, it must use the IOCTL  
  128. ;     function to perform the SMH_REGISTER function. The addresses are 16:16    
  129. ;     for this IOCTl instead of 0:32, because it comes form a device driver.    
  130. SSMDD_CATEGORY    EQU    0081H     ;  Category (For ring 0 stream handler)   
  131. IOCTL_FUNC_SMH_REGISTER    EQU    0040H     ;  Function (For ring 0 stream handler)   
  132. ;***************************************************************************  
  133. SMH_DEREGISTER    EQU    1               ;  SMH_Deregister()            
  134.  
  135. PARM_DEREG    STRUC
  136. smhder_ulFunction    DD    ?                  ;  SMH command function        
  137. smhder_pszSHName    DD    ?                   ;  Max size = 8 char, 9 includes   
  138. PARM_DEREG    ENDS
  139. ;***************************************************************************  
  140. SMH_REPORTEVENT    EQU    2               ;  SMH_ReportEvent()           
  141.  
  142. PARM_EVENT    STRUC
  143. smhrev_ulFunction    DD    ?                  ;  SMH command function        
  144. smhrev_hid    DD    ?
  145. smhrev_hevent    DD    ?                      ;  Used only for explicit events     
  146.                                                ;   Must be 0 for sync and implicit  
  147.                                                ;   events (i.e. error events)       
  148. smhrev_pevcbEvent    DD    ?                  ;  Event status & HSTREAM            
  149. PARM_EVENT    ENDS
  150. ;***************************************************************************  
  151. SMH_NOTIFY    EQU    3               ;  SMH_Notify()                
  152.  
  153. PARM_NOTIFY    STRUC
  154. smhnot_ulFunction    DD    ?       ;  Input - SMH command function           
  155. smhnot_hid    DD    ?              ;  Input                                  
  156. smhnot_hstream    DD    ?          ;  Input                                  
  157. smhnot_ulFlags    DD    ?          ;  Input/Output                           
  158. smhnot_ulGetNumEntries    DD    ?  ;  Input/Output - # of entries in table   
  159. smhnot_ulRetNumEntries    DD    ?  ;  Input/Output - # of entries in table   
  160. smhnot_pGetBufTab    DD    ?       ;  Output - Ptr to buffer/record table    
  161. smhnot_pRetBufTab    DD    ?       ;  Input - Ptr to buffer/record table     
  162. PARM_NOTIFY    ENDS
  163.  
  164. SRCBUFTAB    STRUC
  165. srcbuftab_pBuffer    DD    ?      ;  Ptr to buffer                               
  166. srcbuftab_pRecord    DD    ?      ;  Ptr to record in buffer (split-streams only)    
  167. srcbuftab_ulLength    DD    ?     ;  Max buf length on GetEmpty, Filled          
  168.                                ;  (actual) rec/buf length on ReturnFull.      
  169. srcbuftab_ulMessageParm    DD    ? ;  Message to passed to application           
  170. srcbuftab_mmtimeOffset    DD    ? ;  mmtime offset from beginning of buffer      
  171. SRCBUFTAB    ENDS
  172.  
  173. TGTBUFTAB    STRUC
  174. tgtbuftab_pBuffer    DD    ?      ;  Ptr to buffer                               
  175. tgtbuftab_ulBufId    DD    ?      ;  Buffer ID. Passed to SH on GetFull, must    
  176.                                ;  be passed back to SSM on ReturnEmpty.       
  177. tgtbuftab_ulLength    DD    ?     ;  Filled (actual) buffer length on GetFull,   
  178.                                ;  unused on ReturnEmpty.                      
  179. tgtbuftab_ulMessageParm    DD    ? ;  Message to passed to application           
  180. tgtbuftab_mmtimeOffset    DD    ? ;  mmtime offset from beginning of buffer      
  181. TGTBUFTAB    ENDS
  182. ;  EXTENDED SMH_NOTIFY Structures   
  183.  
  184. PARM_ENOTIFY    STRUC
  185. smhenot_ulFunction    DD    ?       ;  Input - SMH command function           
  186. smhenot_hid    DD    ?              ;  Input                                  
  187. smhenot_hstream    DD    ?          ;  Input                                  
  188. smhenot_ulFlags    DD    ?          ;  Input/Output                           
  189. smhenot_ulGetNumEntries    DD    ?  ;  Input/Output - # of entries in table   
  190. smhenot_ulRetNumEntries    DD    ?  ;  Input/Output - # of entries in table   
  191. smhenot_pGetBufTab    DD    ?       ;  Output - Ptr to buffer/record table    
  192. smhenot_pRetBufTab    DD    ?       ;  Input - Ptr to buffer/record table     
  193. smhenot_ulParm1    DD    ?          ;  Reserved for future use   
  194. smhenot_ulParm2    DD    ?          ;  Reserved for future use   
  195. PARM_ENOTIFY    ENDS
  196.  
  197. ESRCBUFTAB    STRUC
  198. esrcbuftab_pBuffer    DD    ?      ;  Ptr to buffer                               
  199. esrcbuftab_pRecord    DD    ?      ;  Ptr to record in buffer (split-streams only)    
  200. esrcbuftab_ulLength    DD    ?     ;  Max buf length on GetEmpty, Filled          
  201.                                ;  (actual) rec/buf length on ReturnFull.      
  202. esrcbuftab_ulMessageParm    DD    ? ;  Message to passed to application           
  203. esrcbuftab_mmtimeOffset    DD    ? ;  mmtime offset from beginning of buffer      
  204. esrcbuftab_ulParm1    DD    ?      ;  Record or buffer specific data   
  205. esrcbuftab_ulParm2    DD    ?      ;  Record or buffer specific data   
  206. ESRCBUFTAB    ENDS
  207.  
  208. ETGTBUFTAB    STRUC
  209. etgtbuftab_pBuffer    DD    ?      ;  Ptr to buffer                               
  210. etgtbuftab_ulBufId    DD    ?      ;  Buffer ID. Passed to SH on GetFull, must    
  211.                                ;  be passed back to SSM on ReturnEmpty.       
  212. etgtbuftab_ulLength    DD    ?     ;  Filled (actual) buffer length on GetFull,   
  213.                                ;  unused on ReturnEmpty.                      
  214. etgtbuftab_ulMessageParm    DD    ? ;  Message to passed to application           
  215. etgtbuftab_mmtimeOffset    DD    ? ;  mmtime offset from beginning of buffer      
  216. etgtbuftab_ulParm1    DD    ?      ;  Buffer specific data   
  217. etgtbuftab_ulParm2    DD    ?      ;  Buffer specific data   
  218. ETGTBUFTAB    ENDS
  219.  
  220. EPSRCBUFTAB    STRUC
  221. epsrcbuftab_pBuffer    DD    ?      ;  Ptr to buffer                               
  222. epsrcbuftab_pRecord    DD    ?      ;  Ptr to record in buffer (split-streams only)    
  223. epsrcbuftab_ulLength    DD    ?     ;  Max buf length on GetEmpty, Filled          
  224.                                ;  (actual) rec/buf length on ReturnFull.      
  225. epsrcbuftab_ulMessageParm    DD    ? ;  Message to passed to application           
  226. epsrcbuftab_mmtimeOffset    DD    ? ;  mmtime offset from beginning of buffer      
  227. epsrcbuftab_ulParm1    DD    ?      ;  Record or buffer specific data   
  228. epsrcbuftab_ulParm2    DD    ?      ;  Record or buffer specific data   
  229. epsrcbuftab_pProcessLin    DD    ?  ;  Process Linear record ptr   
  230. EPSRCBUFTAB    ENDS
  231.  
  232. EPTGTBUFTAB    STRUC
  233. eptgtbuftab_pBuffer    DD    ?      ;  Ptr to buffer                               
  234. eptgtbuftab_ulBufId    DD    ?      ;  Buffer ID. Passed to SH on GetFull, must    
  235.                                ;  be passed back to SSM on ReturnEmpty.       
  236. eptgtbuftab_ulLength    DD    ?     ;  Filled (actual) buffer length on GetFull,   
  237.                                ;  unused on ReturnEmpty.                      
  238. eptgtbuftab_ulMessageParm    DD    ? ;  Message to passed to application           
  239. eptgtbuftab_mmtimeOffset    DD    ? ;  mmtime offset from beginning of buffer      
  240. eptgtbuftab_ulParm1    DD    ?      ;  Buffer specific data   
  241. eptgtbuftab_ulParm2    DD    ?      ;  Buffer specific data   
  242. eptgtbuftab_pProcessLin    DD    ?  ;  Process Linear buffer ptr   
  243. EPTGTBUFTAB    ENDS
  244. ; SMH_ulFlags:                                                                
  245. BUF_GETEMPTY    EQU    00000001H    ;  Ptr returned in SMH_pGetBuffer    
  246. BUF_RETURNFULL    EQU    00000002H    ;  Ptr passed in SMH_pRetBuffer      
  247. BUF_GETFULL    EQU    00000004H    ;  Ptr returned in SMH_pGetBuffer    
  248. BUF_RETURNEMPTY    EQU    00000008H    ;  Ptr passed in SMH_pRetBuffer      
  249. BUF_GIVEBUF    EQU    00000010H    ;  Ptr passed in SMH_pRetBuffer      
  250. BUF_EOS    EQU    00000100H    ;  End of stream. Source sets this on   
  251.                                          ;   last buffer. Target sets it after   
  252.                                          ;   consuming the laset buffer.         
  253. BUF_RECORDS    EQU    00004000H    ;  One or more records (Split-stream)   
  254. BUF_LASTRECORD    EQU    00008000H    ;  (BUF_RETURNFULL only) Mark           
  255.                                          ;  these record(s) as being the         
  256.                                          ;  last in the buffer. So the SSM       
  257.                                          ;  knows the maximum # of records       
  258.                                          ;  produced for this buffer.            
  259.                                          ;  (Split stream only)                  
  260. ; SMH_ulFlags:                                                                     
  261. BUF_LINEAR    EQU    00010000H    ;  Ptrs are Global linear                 
  262. BUF_PHYSICAL    EQU    00020000H    ;  Ptrs are physical                      
  263.                                          ;  (valid only for phyically              
  264.                                          ;   contiguous buffers)                   
  265. BUF_RESERVED    EQU    00040000H    ;  Reserved                               
  266. BUF_GDT    EQU    00080000H    ;  Ptrs are GDT sel:offset                
  267. BUF_EXTENDED    EQU    80000000H    ;  Use Extended SMH_NOTIFY structures     
  268. BUF_EXTENDEDPTR    EQU    40000000H    ;  Use Extendedptr SMH_NOTIFY structures  
  269.                                          ;   Implies BUF_EXTENDED                  
  270. VALIDSOURCEFLAGS    EQU    (BUF_RETURNFULL OR BUF_GETEMPTY OR BUF_EOS OR BUF_LASTRECORD OR BUF_PHYSICAL OR BUF_LINEAR OR BUF_GDT OR BUF_RECORDS OR BUF_GIVEBUF OR BUF_EXTENDED OR BUF_EXTENDEDPTR)
  271. VALIDTARGETFLAGS    EQU    (BUF_RETURNEMPTY OR BUF_GETFULL OR BUF_PHYSICAL OR BUF_LINEAR OR BUF_GDT OR BUF_EOS OR BUF_EXTENDED OR BUF_EXTENDEDPTR)
  272. ;***************************************************************************  
  273. SMH_LOCKMEM    EQU    4               ;  SMH_LockMem()               
  274.  
  275. PARM_LOCKM    STRUC
  276. smhloc_ulFunction    DD    ?                  ;  SMH command function        
  277. smhloc_pBuffer    DD    ?
  278. smhloc_ulBufSize    DD    ?
  279. smhloc_plockh    DD    ?
  280. smhloc_ulFlags    DD    ?
  281. PARM_LOCKM    ENDS
  282. ; SMH_ulFlags:                                                                
  283. SSM_LOCKMEM    EQU    0000H          ;  Lock Memory.                
  284. SSM_UNLOCKMEM    EQU    0001H          ;  Unlock memory.              
  285. SSM_CONTIGLOCK    EQU    0002H          ;  Lock memory contiguously.   
  286. SSM_LOCKMEM_RESERVED1    EQU    0100H          ;  reserved                    
  287. SSM_LOCKMEM_RESERVED2    EQU    0200H          ;  reserved                    
  288. ;***************************************************************************  
  289. ;***************************************************************************  
  290. ;                                                                             
  291. ;   Function Prototypes for SHC functions (Stream Handler Functions)          
  292. ;   All use Pure C calling convention                                         
  293. ;                                                                             
  294. ;  NOTE ABOUT POINTERS:                                                       
  295. ;   0:32 linear addresses for ring 3 (DLL) stream handlers                    
  296. ;   16:16 selector/offset addresses for ring 0 (PDD) stream handlers          
  297. ;***************************************************************************  
  298.  
  299. SHC_COMMON    STRUC
  300. shcfunc_ulFunction    DD    ?        ;  Handler command function                 
  301. shcfunc_hid    DD    ?               ;  handler ID                               
  302. SHC_COMMON    ENDS
  303. ;***************************************************************************  
  304. SHC_ASSOCIATE    EQU    0 
  305.  
  306. PARM_ASSOC    STRUC
  307. shcass_ulFunction    DD    ?        ;  Handler command function               
  308. shcass_hid    DD    ?               ;  handler ID                             
  309. shcass_hstream    DD    ?           ;  handle of stream instance              
  310. shcass_pacb    DD    ?              ;  pointer to associate control block     
  311. PARM_ASSOC    ENDS
  312. ;***************************************************************************  
  313. SHC_CLOSE    EQU    1 
  314.  
  315. PARM_CLOSE    STRUC
  316. shcclo_ulFunction    DD    ?        ;  Handler command function               
  317. shcclo_hid    DD    ?               ;  handler ID                             
  318. PARM_CLOSE    ENDS
  319. ;***************************************************************************  
  320. SHC_CREATE    EQU    2 
  321.  
  322. PARM_CREATE    STRUC
  323. shccrt_ulFunction    DD    ?        ;  Handler command function               
  324. shccrt_hid    DD    ?               ;  handler ID                             
  325. shccrt_hstream    DD    ?           ;  handle of stream instance              
  326. shccrt_spcbkey    DB    SIZE SPCBKEY DUP (?)           ;  type of stream to create               
  327. shccrt_pspcb    DD    ?             ;  Pointer to SPCB from handler           
  328. shccrt_hstreamBuf    DD    ?        ;  Used for split streams or to associate  
  329.                                     ;  another stream with this stream.       
  330. shccrt_pdcb    DD    ?              ;  pointer to device control block        
  331. PARM_CREATE    ENDS
  332. ;***************************************************************************  
  333. SHC_DESTROY    EQU    3 
  334.  
  335. PARM_DESTROY    STRUC
  336. shcdes_ulFunction    DD    ?        ;  Handler command function               
  337. shcdes_hid    DD    ?               ;  handler ID                             
  338. shcdes_hstream    DD    ?           ;  handle of stream instance              
  339. PARM_DESTROY    ENDS
  340. ;***************************************************************************  
  341. SHC_START    EQU    4 
  342.  
  343. PARM_START    STRUC
  344. shcstr_ulFunction    DD    ?        ;  Handler command function               
  345. shcstr_hid    DD    ?               ;  handler ID                             
  346. shcstr_hstream    DD    ?           ;  handle of stream instance              
  347. shcstr_ulFlags    DD    ?           ;  Start flags                            
  348. PARM_START    ENDS
  349. ;  ulFlags:                                                                   
  350. FLUSH_START    EQU    0001H     ;  This start is a result of a Flush Stop command.   
  351. ;***************************************************************************  
  352. SHC_STOP    EQU    5 
  353.  
  354. PARM_STOP    STRUC
  355. shcstp_ulFunction    DD    ?        ;  Handler command function               
  356. shcstp_hid    DD    ?               ;  handler ID                             
  357. shcstp_hstream    DD    ?           ;  handle of stream instance              
  358. shcstp_ulFlags    DD    ?           ;  Stop flags (refer to ulFlags defines under   
  359.                                     ;   SpiStopStream() call.                 
  360. PARM_STOP    ENDS
  361. ;***************************************************************************  
  362. SHC_SEEK    EQU    6 
  363.  
  364. PARM_SEEK    STRUC
  365. shcsek_ulFunction    DD    ?        ;  Handler command function               
  366. shcsek_hid    DD    ?               ;  handler ID                             
  367. shcsek_hstream    DD    ?           ;  handle of stream instance              
  368. shcsek_ulFlags    DD    ?           ;  Seek flag (refer to ulFlags defines    
  369.                                     ;   under SpiSeekStream() call).          
  370. shcsek_lSeekPoint    DD    ?        ;  seek to point , mmtime or other        
  371. PARM_SEEK    ENDS
  372. ;***************************************************************************  
  373. SHC_ENABLE_EVENT    EQU    7 
  374.  
  375. PARM_ENEVENT    STRUC
  376. shceev_ulFunction    DD    ?        ;  Handler command function               
  377. shceev_hid    DD    ?               ;  handler ID                             
  378. shceev_hevent    DD    ?            ;  handle of event to enable              
  379. shceev_pevcbUser    DD    ?         ;  User event information (e.g. hstream   
  380.                                     ;   EventType, EventSubType)              
  381. PARM_ENEVENT    ENDS
  382. ;***************************************************************************  
  383. SHC_DISABLE_EVENT    EQU    8 
  384.  
  385. PARM_DISEVENT    STRUC
  386. shcdev_ulFunction    DD    ?        ;  Handler command function               
  387. shcdev_hid    DD    ?               ;  handler ID                             
  388. shcdev_hstream    DD    ?           ;  handle to stream for this event        
  389. shcdev_hevent    DD    ?            ;  handle of event to disable             
  390. PARM_DISEVENT    ENDS
  391. ;***************************************************************************  
  392. SHC_ENABLE_SYNC    EQU    9 
  393.  
  394. PARM_ENSYNC    STRUC
  395. shcesy_ulFunction    DD    ?        ;  Handler command function               
  396. shcesy_hid    DD    ?               ;  handler ID                             
  397. shcesy_hstream    DD    ?           ;  handle of stream instance              
  398. shcesy_ulFlags    DD    ?           ;  Sync flags                             
  399. shcesy_mmtimeSync    DD    ?        ;  granularity of sync interval (if null, use default)   
  400. shcesy_pevcbSyncPulse    DD    ?  ;  Sync pulse EVCB information            
  401. shcesy_ulSyncPulseSem    DD    ?    ;  Optional 16 bit system                 
  402.                                     ;  Semaphore for handler                  
  403. PARM_ENSYNC    ENDS
  404. ;  ulFlags:                                                                   
  405. SYNC_MASTER    EQU    0000H     ;  The handler will be a master for this sync  
  406. SYNC_SLAVE    EQU    0001H     ;  The handler will be a slave for this sync   
  407. ;***************************************************************************  
  408. SHC_DISABLE_SYNC    EQU    10 
  409.  
  410. PARM_DISSYNC    STRUC
  411. shcdsy_ulFunction    DD    ?        ;  Handler command function               
  412. shcdsy_hid    DD    ?               ;  handler ID                             
  413. shcdsy_hstream    DD    ?           ;  handle of stream instance              
  414. PARM_DISSYNC    ENDS
  415. ;***************************************************************************  
  416. SHC_GET_TIME    EQU    11 
  417.  
  418. PARM_GTIME    STRUC
  419. shcgti_ulFunction    DD    ?        ;  Handler command function               
  420. shcgti_hid    DD    ?               ;  handler ID                             
  421. shcgti_hstream    DD    ?           ;  handle of stream instance              
  422. shcgti_mmtimeCurrent    DD    ?     ;  Returns current stream time            
  423. PARM_GTIME    ENDS
  424. ;***************************************************************************  
  425. SHC_GET_PROTOCOL    EQU    12 
  426.  
  427. PARM_GPROT    STRUC
  428. shcgpt_ulFunction    DD    ?        ;  Handler command function               
  429. shcgpt_hid    DD    ?               ;  handler ID                             
  430. shcgpt_spcbkey    DB    SIZE SPCBKEY DUP (?)           ;  key of SPCB                            
  431. shcgpt_pspcb    DD    ?             ;  ptr to SPCB (output)                   
  432. PARM_GPROT    ENDS
  433. ;***************************************************************************  
  434. SHC_INSTALL_PROTOCOL    EQU    13 
  435.  
  436. PARM_INSTPROT    STRUC
  437. shcipt_ulFunction    DD    ?        ;  Handler command function               
  438. shcipt_hid    DD    ?               ;  handler ID                             
  439. shcipt_spcbkey    DB    SIZE SPCBKEY DUP (?)           ;  key of SPCB                            
  440. shcipt_pspcb    DD    ?             ;  ptr to SPCB to install                 
  441. shcipt_ulFlags    DD    ?           ;  Install / Deinstall flags              
  442. PARM_INSTPROT    ENDS
  443. ;***************************************************************************  
  444. SHC_ENUMERATE_PROTOCOLS    EQU    14 
  445.  
  446. PARM_ENUMPROT    STRUC
  447. shcqpi_ulFunction    DD    ?        ;  Handler command function               
  448. shcqpi_hid    DD    ?               ;  handler ID                             
  449. shcqpi_paSPCBKeys    DD    ?        ;  ptr to buffer to fill with SPCB keys   
  450. shcqpi_pulNumSPCBKeys    DD    ?    ;  # of entries buffer on input,          
  451.                                     ;   # of SPCB key on output.              
  452. PARM_ENUMPROT    ENDS
  453. ;***************************************************************************  
  454. SHC_NEGOTIATE_RESULT    EQU    15 
  455.  
  456. PARM_NEGOTIATE    STRUC
  457. shcneg_ulFunction    DD    ?        ;  Handler command function               
  458. shcneg_hid    DD    ?               ;  handler ID                             
  459. shcneg_hstream    DD    ?           ;  handle of stream instance              
  460. shcneg_pspcb    DD    ?             ;  Ptr to negotiated SPCB                 
  461. shcneg_ulErrorStatus    DD    ?     ;  On error, indicates which field in the  
  462. PARM_NEGOTIATE    ENDS
  463. ;***************************************************************************  
  464. SHC_SENDMSG    EQU    16 
  465.  
  466. PARM_SNDMSG    STRUC
  467. shcsndmsg_ulFunction    DD    ?        ;  Handler command function               
  468. shcsndmsg_hid    DD    ?               ;  handler ID                             
  469. shcsndmsg_hstream    DD    ?           ;  handle of stream instance              
  470. shcsndmsg_ulMsgType    DD    ?         ;  Stream handler message type            
  471. shcsndmsg_pMsg    DD    ?              ;  Pointer to Message control block       
  472. PARM_SNDMSG    ENDS
  473. ;***************************************************************************  
  474.