home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR24 / EDMI5.ZIP / IFSR3.ZIP / R3STUBS.C < prev   
C/C++ Source or Header  |  1993-07-01  |  49KB  |  1,219 lines

  1. /******************************************************************************
  2. *******************************************************************************
  3. **
  4. ** EXR0R3 - A ring 0/ring 3 IFS skeleton
  5. ** Copyright (C) 1993 by Andre Asselin
  6. **
  7. ** R3STUBS.C - Ring 3 stubs
  8. **
  9. ** History:
  10. ** 6/29/93 - created
  11. **
  12. *******************************************************************************
  13. ******************************************************************************/
  14.  
  15. #include "r3inc.h"
  16.  
  17.  
  18. /******************************************************************************
  19. ** Name of IFS
  20. ******************************************************************************/
  21.  
  22. const char FS_NAME[] = "EXR0R3";
  23.  
  24.  
  25. /******************************************************************************
  26. *******************************************************************************
  27. **
  28. ** Primary entry points
  29. **
  30. *******************************************************************************
  31. ******************************************************************************/
  32.  
  33.  
  34.  
  35.  
  36.  
  37. /*-----------------------------------------------------------------------------
  38. --
  39. -- Volume management
  40. --
  41. -----------------------------------------------------------------------------*/
  42.  
  43.  
  44. /******************************************************************************
  45. **
  46. ** FS_ATTACH - Attach or detach a drive or device
  47. **
  48. ** Parameters
  49. ** ----------
  50. ** unsigned short flag                  indicates attaching/detaching
  51. **   values:
  52. **     FSA_ATTACH               attach drive/device
  53. **     FSA_DETACH               detach drive/device
  54. **     FSA_ATTACH_INFO          return info on attached drive/device
  55. ** char far *pDev                       drive or device that is being attached/detached
  56. ** struct vpfsd far *pvpfsd             pointer to FSD dependant volume parameters
  57. ** struct cdfsd far *pcdfsd             pointer to FSD dependant current directory
  58. ** void far *pParm                      UNVERIFIED pointer to FSD dependant attachment info
  59. ** unsigned short far *pLen             length of area pointed to by pParm
  60. **
  61. ******************************************************************************/
  62.  
  63. #pragma argsused
  64. short int far pascal FSD_ATTACH(unsigned short flag, char *pDev,
  65.                                struct vpfsd *pvpfsd, struct cdfsd *pcdfsd,
  66.                                void *pParm, unsigned short *pLen) {
  67.    return NO_ERROR;
  68. }
  69.  
  70.  
  71. /******************************************************************************
  72. **
  73. ** FS_MOUNT - Examine a volume to determine if the IFS knows its format
  74. **
  75. ** Parameters
  76. ** ----------
  77. ** unsigned short flag                  indicates function to perform
  78. **   values:
  79. **     MOUNT_MOUNT              mount or accept the volume
  80. **     MOUNT_VOL_REMOVED        volume has been removed
  81. **     MOUNT_RELEASE            release all resources associated with the volume
  82. **     MOUNT_ACCEPT             accept the volume in preparation for formatting
  83. ** struct vpfsi far *pvpfsi             pointer to FSD independant volume parameters
  84. ** struct vpfsd far *pvpfsd             pointer to FSD dependant volume parameters
  85. ** unsigned short hVPB                  volume handle
  86. ** char far *pBoot                      pointer to sector 0 data
  87. **
  88. ******************************************************************************/
  89.  
  90. #pragma argsused
  91. short int far pascal FS_MOUNT(unsigned short flag, struct vpfsi far *pvpfsi,
  92.                               struct vpfsd far *pvpfsd, unsigned short hVPB, char far *pBoot)
  93. {
  94.    return ERROR_NOT_SUPPORTED;
  95. }
  96.  
  97.  
  98. /******************************************************************************
  99. **
  100. ** FS_FSINFO - Get/Set file system information
  101. **
  102. ** Parameters
  103. ** ----------
  104. ** unsigned short flag                  indicates function to perform
  105. **   values:
  106. **     INFO_RETREIVE                    retrieve information
  107. **     INFO_SET                         set information
  108. ** unsigned short hVPB                  volume handle
  109. ** char far *pData                      UNVERIFIED pointer to data buffer
  110. ** unsigned short cbData                length of data buffer
  111. ** unsigned short level                 type of information to return
  112. **
  113. ******************************************************************************/
  114.  
  115. #pragma argsused
  116. short int far pascal FS_FSINFO(unsigned short flag, unsigned short hVPB,
  117.                                char far *pData, unsigned short cbData,
  118.                                unsigned short level)
  119. {
  120.    return ERROR_NOT_SUPPORTED;
  121. }
  122.  
  123.  
  124. /******************************************************************************
  125. **
  126. ** FS_FLUSHBUF - Flush buffers for a specified volume
  127. **
  128. ** Parameters
  129. ** ----------
  130. ** unsigned short hVPB                  handle to volume to flush
  131. ** unsigned short flag                  indicates whether to discard or retain cache
  132. **   values:
  133. **     FLUSH_RETAIN     retain cached information
  134. **     FLUSH_DISCARD    discard cached information
  135. **
  136. ******************************************************************************/
  137.  
  138. #pragma argsused
  139. short int far pascal FS_FLUSHBUF(unsigned short hVPB, unsigned short flag)
  140. {
  141.    return ERROR_NOT_SUPPORTED;
  142. }
  143.  
  144.  
  145.  
  146. /*-----------------------------------------------------------------------------
  147. --
  148. -- Directory management
  149. --
  150. -----------------------------------------------------------------------------*/
  151.  
  152.  
  153.  
  154. /******************************************************************************
  155. **
  156. ** FS_CHDIR - Change current directory
  157. **
  158. ** Parameters
  159. ** ----------
  160. ** unsigned short flag                  indicates flavor of call
  161. **   values:
  162. **     CD_EXPLICIT      creating a new current directory
  163. **     CD_VERIFY        verifying a current directory
  164. **     CD_FREE          freeing an instance of a current directory
  165. ** struct cdfsi far *pcdfsi             pointer to FSD independant current directory
  166. ** struct cdfsd far *pcdfsd             pointer to FSD dependant current directory
  167. ** char far *pDir                       pointer to directory to change to
  168. ** unsigned short iCurDirEnd            offset to the end of the current directory in pDir
  169. **
  170. ******************************************************************************/
  171.  
  172. #pragma argsused
  173. short int far pascal FS_CHDIR(unsigned short flag, struct cdfsi far *pcdfsi,
  174.                               struct cdfsd far *pcdfsd, char far *pDir,
  175.                               unsigned short iCurDirEnd)
  176. {
  177.    return ERROR_NOT_SUPPORTED;
  178. }
  179.  
  180.  
  181. /******************************************************************************
  182. **
  183. ** FS_MKDIR - Make a new directory
  184. **
  185. ** Parameters
  186. ** ----------
  187. ** struct cdfsi far *pcdfsi             pointer to FSD independant current directory
  188. ** struct cdfsd far *pcdfsd             pointer to FSD dependant current directory
  189. ** char far *pName                      pointer to directory name to create
  190. ** unsigned short iCurDirEnd            offset to the end of the current directory 
  191. **                                      in pName
  192. ** char *pEABuf                         UNVERIFIED pointer to EAs to attach 
  193. **                                      to new directory
  194. ** unsigned short flags                 0x40 = directory is non 8.3 filename
  195. **
  196. ******************************************************************************/
  197.  
  198. #pragma argsused
  199. short int far pascal FS_MKDIR(struct cdfsi far *pcdfsi, struct cdfsd far *pcdfsd,
  200.                               char far *pName, unsigned short iCurDirEnd,
  201.                               char far *pEABuf, unsigned short flags)
  202. {
  203.    return ERROR_NOT_SUPPORTED;
  204. }
  205.  
  206.  
  207. /******************************************************************************
  208. **
  209. ** FS_RMDIR - Delete directory
  210. **
  211. ** Parameters
  212. ** ----------
  213. ** struct cdfsi far *pcdfsi             pointer to FSD independant current directory
  214. ** struct cdfsd far *pcdfsd             pointer to FSD dependant current directory
  215. ** char far *pName                      pointer to directory name to delete
  216. ** unsigned short iCurDirEnd            offset to the end of the current directory in pName
  217. **
  218. ******************************************************************************/
  219.  
  220. #pragma argsused
  221. short int far pascal FS_RMDIR(struct cdfsi far *pcdfsi, struct cdfsd far *pcdfsd,
  222.                               char far *pName, unsigned short iCurDirEnd)
  223. {
  224.    return ERROR_NOT_SUPPORTED;
  225. }
  226.  
  227.  
  228.  
  229. /*-----------------------------------------------------------------------------
  230. --
  231. -- File management
  232. --
  233. -----------------------------------------------------------------------------*/
  234.  
  235.  
  236.  
  237. /******************************************************************************
  238. **
  239. ** FS_CHGFILEPTR - Change current location in file
  240. **
  241. ** Parameters
  242. ** ----------
  243. ** struct sffsi far *psffsi             pointer to FSD independant file instance
  244. ** struct sffsd far *psffsd             pointer to FSD dependant file instance
  245. ** long offset                          signed offset
  246. ** unsigned short type                  indicates seek type
  247. **   values:
  248. **     CFP_RELBEGIN     move pointer relative to begining of file
  249. **     CFP_RELCUR       move pointer relative to current position in file
  250. **     CFP_RELEND       move pointer relative to end of file
  251. ** unsigned short IOflag                bitfield of I/O suggestions
  252. **   values:
  253. **     IOFL_WRITETHRU   write all updated data before returning
  254. **     IOFL_NOCACHE     don't cache any new data
  255. **
  256. ******************************************************************************/
  257.  
  258. #pragma argsused
  259. short int far pascal FS_CHGFILEPTR(struct sffsi far *psffsi, struct sffsd far *psffsd,
  260.                                    long offset, unsigned short type, unsigned short IOflag)
  261. {
  262.    return ERROR_NOT_SUPPORTED;
  263. }
  264.  
  265.  
  266. /******************************************************************************
  267. **
  268. ** FS_CLOSE - Close an open file
  269. **
  270. ** Parameters
  271. ** ----------
  272. ** unsigned short type                  indicates close type
  273. **   values:
  274. **     FS_CL_ORDINARY   this is not the final close of the file
  275. **     FS_CL_FORPROC    this is the final close of the file for the process
  276. **     FS_CL_FORSYS     this is the final close of the file for the whole system
  277. ** unsigned short IOflag                bitfield of I/O suggestions
  278. **   values:
  279. **     IOFL_WRITETHRU   write all updated data before returning
  280. **     IOFL_NOCACHE     don't cache any new data
  281. ** struct sffsi far *psffsi             pointer to FSD independant file instance
  282. ** struct sffsd far *psffsd             pointer to FSD dependant file instance
  283. **
  284. ******************************************************************************/
  285.  
  286. #pragma argsused
  287. short int far pascal FS_CLOSE(unsigned short type, unsigned short IOflag,
  288.                               struct sffsi far *psffsi, struct sffsd far *psffsd)
  289. {
  290.    return ERROR_NOT_SUPPORTED;
  291. }
  292.  
  293.  
  294. /******************************************************************************
  295. **
  296. ** FS_COMMIT - Commit a file to disk
  297. **
  298. ** Parameters
  299. ** ----------
  300. ** unsigned short type                  indicates commit type
  301. **   values:
  302. **     FS_COMMIT_ONE    commit this one file
  303. **     FS_COMMIT_ALL    commit all files
  304. ** unsigned short IOflag                bitfield of I/O suggestions
  305. **   values:
  306. **     IOFL_WRITETHRU   write all updated data before returning
  307. **     IOFL_NOCACHE     don't cache any new data
  308. ** struct sffsi far *psffsi             pointer to FSD independant file instance
  309. ** struct sffsd far *psffsd             pointer to FSD dependant file instance
  310. **
  311. ******************************************************************************/
  312.  
  313. #pragma argsused
  314. short int far pascal FS_COMMIT(unsigned short type, unsigned short IOflag,
  315.                                struct sffsi far *psffsi, struct sffsd far *psffsd)
  316. {
  317.    return ERROR_NOT_SUPPORTED;
  318. }
  319.  
  320.  
  321. /******************************************************************************
  322. **
  323. ** FS_COPY - Copy a file
  324. **
  325. ** Parameters
  326. ** ----------
  327. ** unsigned short flag                  indicates flavor of call
  328. **   values:
  329. **     DCPY_EXISTING    if destination file exists, replace it
  330. **     DCPY_APPEND      source file should be appended to destination file
  331. ** struct cdfsi far *pcdfsi             pointer to FSD independant current directory
  332. ** struct cdfsd far *pcdfsd             pointer to FSD dependant current directory
  333. ** char far *pSrc                       pointer to source filename
  334. ** unsigned short iSrcCurDirEnd         offset to the end of the current directory in pSrc
  335. ** char far *pDst                       pointer to destination filename
  336. ** unsigned short iDstCurDirEnd         offset to the end of the current directory in pDst
  337. ** unsigned short nameType              0x40 = destination is non 8.3 filename
  338. **
  339. ******************************************************************************/
  340.  
  341. #pragma argsused
  342. short int far pascal FS_COPY(unsigned short flag, struct cdfsi far *pcdfsi,
  343.                              struct cdfsd far *pcdfsd, char far *pSrc,
  344.                              unsigned short iSrcCurDirEnd, char far *pDst,
  345.                              unsigned short iDstCurDirEnd, unsigned short nameType)
  346. {
  347.    return ERROR_NOT_SUPPORTED;
  348. }
  349.  
  350.  
  351. /******************************************************************************
  352. **
  353. ** FS_DELETE - Delete a file
  354. **
  355. ** Parameters
  356. ** ----------
  357. ** struct cdfsi far *pcdfsi             pointer to FSD independant current directory
  358. ** struct cdfsd far *pcdfsd             pointer to FSD dependant current directory
  359. ** char far *pFile                      pointer to filename to delete
  360. ** unsigned short iCurDirEnd            offset to the end of the current directory in pFile
  361. **
  362. ******************************************************************************/
  363.  
  364. #pragma argsused
  365. short int far pascal FS_DELETE(struct cdfsi far *pcdfsi, struct cdfsd far *pcdfsd,
  366.                                char far *pFile, unsigned short iCurDirEnd)
  367. {
  368.    return ERROR_NOT_SUPPORTED;
  369. }
  370.  
  371.  
  372. /******************************************************************************
  373. **
  374. ** FS_FILEATTRIBUTE - Get/Set DOS file attributes
  375. **
  376. ** Parameters
  377. ** ----------
  378. ** unsigned short flag                  indicates flavor of call
  379. **   values:
  380. **     FA_RETRIEVE      retrieve attribute
  381. **     FA_SET           set attribute
  382. ** struct cdfsi far *pcdfsi             pointer to FSD independant current directory
  383. ** struct cdfsd far *pcdfsd             pointer to FSD dependant current directory
  384. ** char far *pName                      pointer to filename
  385. ** unsigned short iCurDirEnd            offset to the end of the current directory in pName
  386. ** unsigned short far *pAttr            pointer to the attribute
  387. **
  388. ******************************************************************************/
  389.  
  390. #pragma argsused
  391. short int far pascal FS_FILEATTRIBUTE(unsigned short flag, struct cdfsi far *pcdfsi,
  392.                                       struct cdfsd far *pcdfsd, char far *pName,
  393.                                       unsigned short iCurDirEnd, unsigned short far *pAttr)
  394. {
  395.    return ERROR_NOT_SUPPORTED;
  396. }
  397.  
  398.  
  399. /******************************************************************************
  400. **
  401. ** FS_FILEINFO - Get/Set file information
  402. **
  403. ** Parameters
  404. ** ----------
  405. ** unsigned short flag                  indicates flavor of call
  406. **   values:
  407. **     FI_RETRIEVE      retrieve information
  408. **     FI_SET           set information
  409. ** struct sffsi far *psffsi             pointer to FSD independant file instance
  410. ** struct sffsd far *psffsd             pointer to FSD dependant file instance
  411. ** unsigned short level                 level of information to get/set
  412. ** char far *pData                      UNVERIFIED? pointer to information area
  413. ** unsigned short cbData                size of area pointed to by pData
  414. ** unsigned short IOflag                bitfield of I/O suggestions
  415. **   values:
  416. **     IOFL_WRITETHRU   write all updated data before returning
  417. **     IOFL_NOCACHE     don't cache any new data
  418. **
  419. ******************************************************************************/
  420.  
  421. #pragma argsused
  422. short int far pascal FS_FILEINFO(unsigned short flag, struct sffsi far *psffsi,
  423.                                  struct sffsd far *psffsd, unsigned short level,
  424.                                  char far *pData, unsigned short cbData,
  425.                                  unsigned short IOflag)
  426. {
  427.    return ERROR_NOT_SUPPORTED;
  428. }
  429.  
  430.  
  431. /******************************************************************************
  432. **
  433. ** FS_FILEIO - Atomic I/O operations
  434. **
  435. ** Parameters
  436. ** ----------
  437. ** struct sffsi far *psffsi             pointer to FSD independant file instance
  438. ** struct sffsd far *psffsd             pointer to FSD dependant file instance
  439. ** char far *pCmdList                   UNVERIFIED pointer to information area
  440. ** unsigned short cbCmdList             size of area pointed to by pCmdList
  441. ** unsigned short far *poError          UNVERIFIED pointer to offset within
  442. **                                      pCmdList of command that caused an error
  443. ** unsigned short IOflag                bitfield of I/O suggestions
  444. **   values:
  445. **     IOFL_WRITETHRU   write all updated data before returning
  446. **     IOFL_NOCACHE     don't cache any new data
  447. **
  448. ******************************************************************************/
  449.  
  450. #pragma argsused
  451. short int far pascal FS_FILEIO(struct sffsi far *psffsi, struct sffsd far *psffsd,
  452.                                char far *pCmdList, unsigned short cbCmdList,
  453.                                unsigned short far *poError, unsigned short IOflag)
  454. {
  455.    return ERROR_NOT_SUPPORTED;
  456. }
  457.  
  458.  
  459. /******************************************************************************
  460. **
  461. ** FS_MOVE - Move/rename a file
  462. **
  463. ** Parameters
  464. ** ----------
  465. ** struct cdfsi far *pcdfsi             pointer to FSD independant current directory
  466. ** struct cdfsd far *pcdfsd             pointer to FSD dependant current directory
  467. ** char far *pSrc                       pointer to source filename
  468. ** unsigned short iSrcCurDirEnd         offset to the end of the current directory in pSrc
  469. ** char far *pDst                       pointer to destination filename
  470. ** unsigned short iDstCurDirEnd         offset to the end of the current directory in pDst
  471. ** unsigned short flags                 0x40 = destination is non 8.3 filename
  472. **
  473. ******************************************************************************/
  474.  
  475. #pragma argsused
  476. short int far pascal FS_MOVE(struct cdfsi far *pcdfsi, struct cdfsd far *pcdfsd,
  477.                              char far *pSrc, unsigned short iSrcCurDirEnd,
  478.                              char far *pDst, unsigned short iDstCurDirEnd,
  479.                              unsigned short flags)
  480. {
  481.    return ERROR_NOT_SUPPORTED;
  482. }
  483.  
  484.  
  485. /******************************************************************************
  486. **
  487. ** FS_NEWSIZE - Change size of file
  488. **
  489. ** Parameters
  490. ** ----------
  491. ** struct sffsi far *psffsi             pointer to FSD independant file instance
  492. ** struct sffsd far *psffsd             pointer to FSD dependant file instance
  493. ** unsigned long len                    new length of file
  494. ** unsigned short IOflag                bitfield of I/O suggestions
  495. **   values:
  496. **     IOFL_WRITETHRU   write all updated data before returning
  497. **     IOFL_NOCACHE     don't cache any new data
  498. **
  499. ******************************************************************************/
  500.  
  501. #pragma argsused
  502. short int far pascal FS_NEWSIZE(struct sffsi far *psffsi, struct sffsd far *psffsd,
  503.                                 unsigned long len, unsigned short IOflag)
  504. {
  505.    return ERROR_NOT_SUPPORTED;
  506. }
  507.  
  508.  
  509. /******************************************************************************
  510. **
  511. ** FS_OPENCREATE - Open or create a new file
  512. **
  513. ** Parameters
  514. ** ----------
  515. ** struct cdfsi far *pcdfsi             pointer to FSD independant current directory
  516. ** struct cdfsd far *pcdfsd             pointer to FSD dependant current directory
  517. ** char far *pName                      pointer to filename
  518. ** unsigned short iCurDirEnd            offset to the end of the current directory in pName
  519. ** struct sffsi far *psffsi             pointer to FSD independant file instance
  520. ** struct sffsd far *psffsd             pointer to FSD dependant file instance
  521. ** unsigned long openmode               sharing and access mode
  522. ** unsigned short openflag              action to take when file exists/doesn't exist
  523. ** unsigned short far *pAction          returns the action that the IFS took
  524. ** unsigned short attr                  OS/2 file attributes
  525. ** char *pEABuf                         UNVERIFIED pointer to EAs to attach to new file
  526. ** unsigned short fat *pfgenFlag        flags returned by the IFS
  527. **   values:
  528. **     FOC_NEEDEAS      indicates there are critical EAs associated with the file
  529. **
  530. ******************************************************************************/
  531.  
  532. #pragma argsused
  533. short int far pascal FS_OPENCREATE(struct cdfsi far *pcdfsi, struct cdfsd far *pcdfsd,
  534.                                    char far *pName, unsigned short iCurDirEnd,
  535.                                    struct sffsi far *psffsi, struct sffsd far *psffsd,
  536.                                    unsigned long openmode, unsigned short openflag,
  537.                                    unsigned short far *pAction, unsigned short attr,
  538.                                    char far *pEABuf, unsigned short far *pfgenFlag)
  539. {
  540.    return ERROR_NOT_SUPPORTED;
  541. }
  542.  
  543.  
  544. /******************************************************************************
  545. **
  546. ** FS_PATHINFO - get/set file information by filename
  547. **
  548. ** Parameters
  549. ** ----------
  550. ** unsigned short flag                  indicates flavor of call
  551. **   values:
  552. **     PI_RETRIEVE      retrieve information
  553. **     PI_SET           set information
  554. ** struct cdfsi far *pcdfsi             pointer to FSD independant current directory
  555. ** struct cdfsd far *pcdfsd             pointer to FSD dependant current directory
  556. ** char far *pName                      pointer to filename
  557. ** unsigned short iCurDirEnd            offset to the end of the current directory in pName
  558. ** unsigned short level                 level of information to get/set
  559. ** char far *pData                      UNVERIFIED pointer to information area
  560. ** unsigned short cbData                size of area pointed to by pData
  561. **
  562. ******************************************************************************/
  563.  
  564. #pragma argsused
  565. short int far pascal FS_PATHINFO(unsigned short flag, struct cdfsi far *pcdfsi,
  566.                                  struct cdfsd far *pcdfsd, char far *pName,
  567.                                  unsigned short iCurDirEnd, unsigned short level,
  568.                                  char far *pData, unsigned short cbData)
  569. {
  570.    return ERROR_NOT_SUPPORTED;
  571. }
  572.  
  573.  
  574. /******************************************************************************
  575. **
  576. ** FS_READ - read data from a file
  577. **
  578. ** Parameters
  579. ** ----------
  580. ** struct sffsi far *psffsi             pointer to FSD independant file instance
  581. ** struct sffsd far *psffsd             pointer to FSD dependant file instance
  582. ** char far *pData                      UNVERIFIED pointer to buffer
  583. ** unsigned short far *pLen             length of buffer
  584. ** unsigned short IOflag                bitfield of I/O suggestions
  585. **   values:
  586. **     IOFL_WRITETHRU   write all updated data before returning
  587. **     IOFL_NOCACHE     don't cache any new data
  588. **
  589. ******************************************************************************/
  590.  
  591. #pragma argsused
  592. short int far pascal FS_READ(struct sffsi far *psffsi, struct sffsd far *psffsd,
  593.                              char far *pData, unsigned short far *pLen,
  594.                              unsigned short IOflag)
  595. {
  596.    return ERROR_NOT_SUPPORTED;
  597. }
  598.  
  599.  
  600. /******************************************************************************
  601. **
  602. ** FS_WRITE - write data to a file
  603. **
  604. ** Parameters
  605. ** ----------
  606. ** struct sffsi far *psffsi             pointer to FSD independant file instance
  607. ** struct sffsd far *psffsd             pointer to FSD dependant file instance
  608. ** char far *pData                      UNVERIFIED pointer to buffer
  609. ** unsigned short far *pLen             length of buffer
  610. ** unsigned short IOflag                bitfield of I/O suggestions
  611. **   values:
  612. **     IOFL_WRITETHRU   write all updated data before returning
  613. **     IOFL_NOCACHE     don't cache any new data
  614. **
  615. ******************************************************************************/
  616.  
  617. #pragma argsused
  618. short int far pascal FS_WRITE(struct sffsi far *psffsi, struct sffsd far *psffsd,
  619.                               char far *pData, unsigned short far *pLen,
  620.                               unsigned short IOflag)
  621. {
  622.    return ERROR_NOT_SUPPORTED;
  623. }
  624.  
  625.  
  626.  
  627. /*-----------------------------------------------------------------------------
  628. --
  629. -- Directory management
  630. --
  631. -----------------------------------------------------------------------------*/
  632.  
  633.  
  634.  
  635. /******************************************************************************
  636. **
  637. ** FS_FINDCLOSE - End a directory search
  638. **
  639. ** Parameters
  640. ** ----------
  641. ** struct fsfsi far *pfsfsi             pointer to FSD independant search record
  642. ** struct fsfsd far *pfsfsd             pointer to FSD dependant search record
  643. **
  644. ******************************************************************************/
  645.  
  646. #pragma argsused
  647. short int far pascal FS_FINDCLOSE(struct fsfsi far *pfsfsi, struct fsfsd far *pfsfsd)
  648. {
  649.    return ERROR_NOT_SUPPORTED;
  650. }
  651.  
  652.  
  653. /******************************************************************************
  654. **
  655. ** FS_FINDFIRST - Begin a new directory search
  656. **
  657. ** Parameters
  658. ** ----------
  659. ** struct cdfsi far *pcdfsi             pointer to FSD independant current directory
  660. ** struct cdfsd far *pcdfsd             pointer to FSD dependant current directory
  661. ** char far *pName                      pointer to filename mask
  662. ** unsigned short iCurDirEnd            offset to the end of the current directory in pName
  663. ** unsigned short attr                  attribute mask
  664. ** struct fsfsi far *pfsfsi             pointer to FSD independant search record
  665. ** struct fsfsd far *pfsfsd             pointer to FSD dependant search record
  666. ** char far *pData                      UNVERIFIED pointer to information area
  667. ** unsigned short cbData                size of area pointed to by pData
  668. ** unsigned short far *pcMatch          maximum number of entries to return*
  669. **                                      number of entries actually returned
  670. ** unsigned short level                 level of information to return
  671. ** unsigned short flags                 indicates whether to return position information
  672. **   values:
  673. **     FF_NOPOS         don't return any position information
  674. **     FF_GETPOS        return position information in buffer
  675. **
  676. ******************************************************************************/
  677.  
  678. #pragma argsused
  679. short int far pascal FS_FINDFIRST(struct cdfsi far *pcdfsi, struct cdfsd far *pcdfsd,
  680.                                   char far *pName, unsigned short iCurDirEnd,
  681.                                   unsigned short attr, struct fsfsi far *pfsfsi,
  682.                                   struct fsfsd far *pfsfsd, char far *pData,
  683.                                   unsigned short cbData, unsigned short far *pcMatch,
  684.                                   unsigned short level, unsigned short flags)
  685. {
  686.    return ERROR_NOT_SUPPORTED;
  687. }
  688.  
  689.  
  690. /******************************************************************************
  691. **
  692. ** FS_FINDFROMNAME - Restart directory search
  693. **
  694. ** Parameters
  695. ** ----------
  696. ** struct fsfsi far *pfsfsi             pointer to FSD independant search record
  697. ** struct fsfsd far *pfsfsd             pointer to FSD dependant search record
  698. ** char far *pData                      UNVERIFIED pointer to information area
  699. ** unsigned short cbData                size of area pointed to by pData
  700. ** unsigned short far *pcMatch          maximum number of entries to return*
  701. **                                      number of entries actually returned
  702. ** unsigned short level                 level of information to return
  703. ** unsigned long position               position in directory to restart search from
  704. ** char far *pName                      pointer to filename to restart search from
  705. ** unsigned short flags                 indicates whether to return position information
  706. **   values:
  707. **     FF_NOPOS         don't return any position information
  708. **     FF_GETPOS        return position information in buffer
  709. **
  710. ******************************************************************************/
  711.  
  712. #pragma argsused
  713. short int far pascal FS_FINDFROMNAME(struct fsfsi far *pfsfsi, struct fsfsd far *pfsfsd,
  714.                                      char far *pData, unsigned short cbData,
  715.                                      unsigned short far *pcMatch, unsigned short level,
  716.                                      unsigned long position, char far *pName,
  717.                                      unsigned short flags)
  718. {
  719.    return ERROR_NOT_SUPPORTED;
  720. }
  721.  
  722.  
  723. /******************************************************************************
  724. **
  725. ** FS_FINDNEXT - Continue directory search
  726. **
  727. ** Parameters
  728. ** ----------
  729. ** struct fsfsi far *pfsfsi             pointer to FSD independant search record
  730. ** struct fsfsd far *pfsfsd             pointer to FSD dependant search record
  731. ** char far *pData                      UNVERIFIED pointer to information area
  732. ** unsigned short cbData                size of area pointed to by pData
  733. ** unsigned short far *pcMatch          maximum number of entries to return*
  734. **                                      number of entries actually returned
  735. ** unsigned short level                 level of information to return
  736. ** unsigned short flag                  indicates whether to return position information
  737. **   values:
  738. **     FF_NOPOS         don't return any position information
  739. **     FF_GETPOS        return position information in buffer
  740. **
  741. ******************************************************************************/
  742.  
  743. #pragma argsused
  744. short int far pascal FS_FINDNEXT(struct fsfsi far *pfsfsi, struct fsfsd far *pfsfsd,
  745.                                  char far *pData, unsigned short cbData, 
  746.                                  unsigned short far *pcMatch, unsigned short level,
  747.                                  unsigned short flag)
  748. {
  749.    return ERROR_NOT_SUPPORTED;
  750. }
  751.  
  752.  
  753. /******************************************************************************
  754. **
  755. ** FS_FINDNOTIFYCLOSE - End a directory update request
  756. **
  757. ** Parameters
  758. ** ----------
  759. ** unsigned short handle                handle of update request to close
  760. **
  761. ******************************************************************************/
  762.  
  763. #pragma argsused
  764. short int far pascal FS_FINDNOTIFYCLOSE(unsigned short handle)
  765. {
  766.    return ERROR_NOT_SUPPORTED;
  767. }
  768.  
  769.  
  770. /******************************************************************************
  771. **
  772. ** FS_FINDNOTIFYFIRST - Begin a new directory update request
  773. **
  774. ** Parameters
  775. ** ----------
  776. ** struct cdfsi far *pcdfsi             pointer to FSD independant current directory
  777. ** struct cdfsd far *pcdfsd             pointer to FSD dependant current directory
  778. ** char far *pName                      pointer to filename mask
  779. ** unsigned short iCurDirEnd            offset to the end of the current directory in pName
  780. ** unsigned short attr                  attribute mask
  781. ** unsigned short far *pHandle          pointer to place where FSD stores its handle
  782. ** char far *pData                      UNVERIFIED pointer to information area
  783. ** unsigned short cbData                size of area pointed to by pData
  784. ** unsigned short far *pcMatch          maximum number of entries to return*
  785. **                                      number of entries actually returned
  786. ** unsigned short level                 level of information to return
  787. ** unsigned long timeout                timeout in milliseconds
  788. **
  789. ******************************************************************************/
  790.  
  791. #pragma argsused
  792. short int far pascal FS_FINDNOTIFYFIRST(struct cdfsi far *pcdfsi, struct cdfsd far *pcdfsd,
  793.                                         char far *pName, unsigned short iCurDirEnd,
  794.                                         unsigned short attr, unsigned short far *pHandle,
  795.                                         char far *pData, unsigned short cbData,
  796.                                         unsigned short far *pcMatch, unsigned short level,
  797.                                         unsigned long timeout)
  798. {
  799.    return ERROR_NOT_SUPPORTED;
  800. }
  801.  
  802.  
  803. /******************************************************************************
  804. **
  805. ** FS_FINDNOTIFYNEXT - Continue directory update request
  806. **
  807. ** Parameters
  808. ** ----------
  809. ** unsigned short handle                directory update handle
  810. ** char far *pData                      UNVERIFIED pointer to information area
  811. ** unsigned short cbData                size of area pointed to by pData
  812. ** unsigned short far *pcMatch          maximum number of entries to return*
  813. **                                      number of entries actually returned
  814. ** unsigned short level                 level of information to return
  815. ** unsigned long timeout                timeout in milliseconds
  816. **
  817. ******************************************************************************/
  818.  
  819. #pragma argsused
  820. short int far pascal FS_FINDNOTIFYNEXT(unsigned short handle, char far *pData,
  821.                                        unsigned short cbData, unsigned short far *pcMatch,
  822.                                        unsigned short level, unsigned long timeout)
  823. {
  824.    return ERROR_NOT_SUPPORTED;
  825. }
  826.  
  827.  
  828.  
  829. /*-----------------------------------------------------------------------------
  830. --
  831. -- FSD Extended Interface
  832. --
  833. -----------------------------------------------------------------------------*/
  834.  
  835.  
  836.  
  837. /******************************************************************************
  838. **
  839. ** FS_FSCTL - Extended IFS control
  840. **
  841. ** Parameters
  842. ** ----------
  843. ** union argdat far *pArgdat
  844. ** unsigned short iArgType              argument type
  845. **   values:
  846. **     FSCTL_ARG_FILEINSTANCE   filehandle directed
  847. **     FSCTL_ARG_CURDIR         pathname directed
  848. **     FSCTL_ARG_NULL           FSD directed
  849. ** unsigned short func                  function code
  850. **   values:
  851. **     FSCTL_FUNC_NONE          NULL function
  852. **     FSCTL_FUNC_NEW_INFO      return error code information
  853. **     FSCTL_FUNC_EASIZE        return max EA size and max EA list size
  854. ** char far *pParm                      UNVERIFIED pointer to parameter area
  855. ** unsigned short lenParm               size of area pointed to by pParm
  856. ** unsigned short far *plenParmOut      length of parameters passed in pParm
  857. ** char far *pData                      UNVERIFIED pointer to information area
  858. ** unsigned short lenData               size of area pointed to by pData
  859. ** unsigned short far *plenDataOut      length of parameters passed in pData
  860. **
  861. ******************************************************************************/
  862.  
  863. #pragma argsused
  864. short int far pascal FS_FSCTL(union argdat far *pArgdat, unsigned short iArgType,
  865.                               unsigned short func, char far *pParm, unsigned short lenParm,
  866.                               unsigned short far *plenParmOut, char far *pData,
  867.                               unsigned short lenData, unsigned short far *plenDataOut)
  868. {
  869.    return ERROR_NOT_SUPPORTED;
  870. }
  871.  
  872.  
  873. /******************************************************************************
  874. **
  875. ** FS_IOCTL - Perform an IOCTL on the IFS
  876. **
  877. ** Parameters
  878. ** ----------
  879. ** struct sffsi far *psffsi             pointer to FSD independant file instance
  880. ** struct sffsd far *psffsd             pointer to FSD dependant file instance
  881. ** unsigned short cat                   function category
  882. ** unsigned short func                  function to perform
  883. ** char far *pParm                      UNVERIFIED pointer to parameter area
  884. ** unsigned short lenParm               size of area pointed to by pParm
  885. ** unsigned short far *pParmLenInOut    length of parameters passed in pParm
  886. ** char far *pData                      UNVERIFIED pointer to information area
  887. ** unsigned short lenData               size of area pointed to by pData
  888. ** unsigned short far *pDataLenInOut    length of parameters passed in pData
  889. **
  890. ******************************************************************************/
  891.  
  892. #pragma argsused
  893. short int far pascal FS_IOCTL(struct sffsi far *psffsi, struct sffsd far *psffsd,
  894.                               unsigned short cat, unsigned short func,
  895.                               char far *pParm, unsigned short lenParm,
  896.                               unsigned far *pParmLenInOut, char far *pData,
  897.                               unsigned short lenData, unsigned far *pDataLenInOut)
  898. {
  899.    return ERROR_NOT_SUPPORTED;
  900. }
  901.  
  902.  
  903.  
  904. /*-----------------------------------------------------------------------------
  905. --
  906. -- Miscellaneous Functions
  907. --
  908. -----------------------------------------------------------------------------*/
  909.  
  910.  
  911.  
  912. /******************************************************************************
  913. **
  914. ** FS_EXIT - Notify FSD that a process is ending
  915. **
  916. ** Parameters
  917. ** ----------
  918. ** unsigned short uid                   user ID of process
  919. ** unsigned short pid                   process ID of process
  920. ** unsigned short pdb                   DOS mode process ID of process
  921. **
  922. ******************************************************************************/
  923.  
  924. #pragma argsused
  925. void far pascal FS_EXIT(unsigned short uid, unsigned short pid, unsigned short pdb)
  926. {
  927. }
  928.  
  929.  
  930. /******************************************************************************
  931. **
  932. ** FS_INIT - Initialize the IFS
  933. **
  934. ** Parameters
  935. ** ----------
  936. ** char far *szParm                     pointer to command line parameters
  937. ** unsigned long pDevHlp                pointer to DevHlp entry point
  938. ** unsigned long far *pMiniFSD          pointer to data passed between the 
  939. **                                      mini-FSD and the IFS
  940. **
  941. ******************************************************************************/
  942.  
  943. #pragma argsused
  944. short int far pascal FS_INIT(char far *szParm, unsigned long pDevHlp,
  945.                              unsigned long far *pMiniFSD)
  946. {
  947.    return ERROR_NOT_SUPPORTED;
  948. }
  949.  
  950.  
  951. /******************************************************************************
  952. **
  953. ** FS_NMPIPE - Perform a named pipe operation
  954. **
  955. ** Parameters
  956. ** ----------
  957. ** struct sffsi far *psffsi             pointer to FSD independant file instance
  958. ** struct sffsd far *psffsd             pointer to FSD dependant file instance
  959. ** unsigned short OpType                operation to perform
  960. **   values:
  961. **     NMP_GetPHandState
  962. **     NMP_SetPHandState
  963. **     NMP_PipeQInfo
  964. **     NMP_PeekPipe
  965. **     NMP_ConnectPipe
  966. **     NMP_DisconnectPipe
  967. **     NMP_TransactPipe
  968. **     NMP_READRAW
  969. **     NMP_WRITERAW
  970. **     NMP_WAITPIPE
  971. **     NMP_CALLPIPE
  972. **     NMP_QNmPipeSemState
  973. ** union npoper far *pOpRec             data for operation
  974. ** char far *pData                      pointer to user data
  975. ** char far *pName                      pointer to remote named pipe
  976. **
  977. ******************************************************************************/
  978.  
  979. #pragma argsused
  980. short int far pascal FS_NMPIPE(struct sffsi far *psffsi, struct sffsd far *psffsd,
  981.                                unsigned short OpType, union npoper far *pOpRec,
  982.                                char far *pData, char far *pName)
  983. {
  984.    return ERROR_NOT_SUPPORTED;
  985. }
  986.  
  987.  
  988. /******************************************************************************
  989. **
  990. ** FS_PROCESSNAME - Canonicalize a filename
  991. **
  992. ** Parameters
  993. ** ----------
  994. ** char far *pNameBuf                   filename to canonicalize
  995. **
  996. ******************************************************************************/
  997.  
  998. #pragma argsused
  999. short int far pascal FS_PROCESSNAME(char far *pNameBuf)
  1000. {
  1001.    return ERROR_NOT_SUPPORTED;
  1002. }
  1003.  
  1004.  
  1005. /******************************************************************************
  1006. **
  1007. ** FS_SHUTDOWN - Prepare for a system shutdown
  1008. **
  1009. ** Parameters
  1010. ** ----------
  1011. ** unsigned short usType                flavor of call
  1012. **   values:
  1013. **     SD_BEGIN                 begining the shutdown process
  1014. **     SD_COMPLETE              finishing the shutdown process
  1015. ** unsigned long ulReserved             reserved
  1016. **
  1017. ******************************************************************************/
  1018.  
  1019. #pragma argsused
  1020. short int far pascal FS_SHUTDOWN(unsigned short usType, unsigned long ulReserved)
  1021. {
  1022.    return ERROR_NOT_SUPPORTED;
  1023. }
  1024.  
  1025.  
  1026.  
  1027. /******************************************************************************
  1028. *******************************************************************************
  1029. **
  1030. ** Swapper support entry points
  1031. **
  1032. *******************************************************************************
  1033. ******************************************************************************/
  1034.  
  1035.  
  1036.  
  1037. /******************************************************************************
  1038. **
  1039. ** FS_ALLOCATEPAGESPACE - Adjust size of the page file
  1040. **
  1041. ** Parameters
  1042. ** ----------
  1043. ** struct sffsi far *psffsi             pointer to FSD independant file instance
  1044. ** struct sffsd far *psffsd             pointer to FSD dependant file instance
  1045. ** unsigned long ISize                  new size of page file
  1046. ** unsigned long IWantContig            minimum continuity requirement
  1047. **
  1048. ******************************************************************************/
  1049.  
  1050. #pragma argsused
  1051. short int far pascal FS_ALLOCATEPAGESPACE(struct sffsi far *psffsi,
  1052.                                           struct sffsd far *psffsd, 
  1053.                                           unsigned long lSize, 
  1054.                                           unsigned long lWantContig)
  1055. {
  1056.    return ERROR_NOT_SUPPORTED;
  1057. }
  1058.  
  1059.  
  1060. /******************************************************************************
  1061. **
  1062. ** FS_DOPAGEIO - Perform I/O to the page file
  1063. **
  1064. ** Parameters
  1065. ** ----------
  1066. ** struct sffsi far *psffsi             pointer to FSD independant file instance
  1067. ** struct sffsd far *psffsd             pointer to FSD dependant file instance
  1068. ** struct PageCmdHeader far *pPageCmdList operations to perform
  1069. **
  1070. ******************************************************************************/
  1071.  
  1072. #pragma argsused
  1073. short int far pascal FS_DOPAGEIO(struct sffsi far *psffsi, struct sffsd far *psffsd,
  1074.                                  struct PageCmdHeader far *pPageCmdList)
  1075. {
  1076.    return ERROR_NOT_SUPPORTED;
  1077. }
  1078.  
  1079.  
  1080. /******************************************************************************
  1081. **
  1082. ** FS_OPENPAGEFILE - Open the paging file
  1083. **
  1084. ** Parameters
  1085. ** ----------
  1086. ** unsigned long far *pFlag             flags
  1087. **     PGIO_FIRSTOPEN           first open of page file
  1088. **     PGIO_PADDR               physical addresses required
  1089. **     PGIO_VADDR               16:16 virtual address required
  1090. ** unsigned long far *pcMaxReq          pointer to maximum request list size
  1091. ** char far *pName                      pointer to filename
  1092. ** struct sffsi far *psffsi             pointer to FSD independant file instance
  1093. ** struct sffsd far *psffsd             pointer to FSD dependant file instance
  1094. ** unsigned long OpenMode               sharing and access mode
  1095. ** unsigned short OpenFlag              action to take when file exists/doesn't exist
  1096. ** unsigned short Attr                  OS/2 file attributes
  1097. ** unsigned long Reserved               reserved
  1098. **
  1099. ******************************************************************************/
  1100.  
  1101. #pragma argsused
  1102. short int far pascal FS_OPENPAGEFILE(unsigned long far *pFlags,
  1103.                                      unsigned long far *pcMaxReq,
  1104.                                      char far *pName, struct sffsi far *psffsi,
  1105.                                      struct sffsd far *psffsd, unsigned short OpenMode,
  1106.                                      unsigned short OpenFlag, unsigned short Attr,
  1107.                                      unsigned long Reserved)
  1108. {
  1109.    return ERROR_NOT_SUPPORTED;
  1110. }
  1111.  
  1112.  
  1113. /******************************************************************************
  1114. **
  1115. ** FS_SETSWAP - Inform IFS it will be used to manage the swap file
  1116. **
  1117. ** Parameters
  1118. ** ----------
  1119. ** struct sffsi far *psffsi             pointer to FSD independant file instance
  1120. ** struct sffsd far *psffsd             pointer to FSD dependant file instance
  1121. **
  1122. ******************************************************************************/
  1123.  
  1124. #pragma argsused
  1125. short int far pascal FS_SETSWAP(struct sffsi far *psffsi, struct sffsd far *psffsd)
  1126. {
  1127.    return ERROR_NOT_SUPPORTED;
  1128. }
  1129.  
  1130.  
  1131.  
  1132. /******************************************************************************
  1133. *******************************************************************************
  1134. **
  1135. ** Locking support entry points
  1136. **
  1137. *******************************************************************************
  1138. ******************************************************************************/
  1139.  
  1140.  
  1141.  
  1142. /******************************************************************************
  1143. **
  1144. ** FS_CANCELLOCKREQUEST - unlock a range
  1145. **
  1146. ** Parameters
  1147. ** ----------
  1148. ** struct sffsi far *psffsi             pointer to FSD independant file instance
  1149. ** struct sffsd far *psffsd             pointer to FSD dependant file instance
  1150. ** void far *pLockRange                 range to unlock
  1151. **
  1152. ******************************************************************************/
  1153.  
  1154. #pragma argsused
  1155. short int far pascal FS_CANCELLOCKREQUEST(struct sffsi far *psffsi, struct sffsd far *psffsd,
  1156.                                           void far *pLockRange)
  1157. {
  1158.    return ERROR_NOT_SUPPORTED;
  1159. }
  1160.  
  1161.  
  1162. /******************************************************************************
  1163. **
  1164. ** FS_CANCELLOCKREQUEST - unlock a range
  1165. **
  1166. ** Parameters
  1167. ** ----------
  1168. ** struct sffsi far *psffsi             pointer to FSD independant file instance
  1169. ** struct sffsd far *psffsd             pointer to FSD dependant file instance
  1170. ** void far *pUnLockRange               range to unlock
  1171. ** void far *pLockRange                 range to lock
  1172. ** unsigned long timeout                time in milliseconds to wait
  1173. ** unsigned long flags                  flags
  1174. **   values:
  1175. **     0x01                     sharing of this file region is allowed
  1176. **     0x02                     atomic lock request
  1177. **
  1178. ******************************************************************************/
  1179.  
  1180. #pragma argsused
  1181. short int far pascal FS_FILELOCKS(struct sffsi far *psffsi, struct sffsd far *psffsd,
  1182.                                   void far *pUnLockRange, void far *pLockRange,
  1183.                                   unsigned long timeout, unsigned long flags)
  1184. {
  1185.    return ERROR_NOT_SUPPORTED;
  1186. }
  1187.  
  1188.  
  1189.  
  1190. /******************************************************************************
  1191. *******************************************************************************
  1192. **
  1193. ** UNC entry point
  1194. **
  1195. *******************************************************************************
  1196. ******************************************************************************/
  1197.  
  1198.  
  1199.  
  1200. /******************************************************************************
  1201. **
  1202. ** FS_VERIFYUNCNAME - Check if the IFS controls the server in question
  1203. **
  1204. ** Parameters
  1205. ** ----------
  1206. ** unsigned long far *pFlag             flags
  1207. **   values:
  1208. **     VUN_PASS1                pass 1 poll
  1209. **     VUN_PASS2                pass 2 poll
  1210. ** char far *pName                      pointer to server in UNC format
  1211. **
  1212. ******************************************************************************/
  1213.  
  1214. #pragma argsused
  1215. short int far pascal FS_VERIFYUNCNAME(unsigned short flag, char far *pName)
  1216. {
  1217.    return ERROR_NOT_SUPPORTED;
  1218. }
  1219.