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