home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / inc / ssm.inc < prev    next >
Text File  |  1999-04-30  |  28KB  |  485 lines

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