rw_root.c
上传用户:xiaoan1112
上传日期:2013-04-11
资源大小:19621k
文件大小:2k
源码类别:

操作系统开发

开发平台:

Visual C++

  1. /***************************************************************************/
  2. /* */
  3. /* RW_ROOT.C */
  4. /* */
  5. /* Copyright (c) 1991 - Microsoft Corp. */
  6. /* All rights reserved. */
  7. /* Microsoft Confidential */
  8. /*                                                                         */
  9. /* Reads or writes a specified root directory sector on the specified */
  10. /* drive. */
  11. /* */
  12. /* ReadWriteRoot( int iDosDrv, struct BPB *Bpb, void *Buf, int Sector */
  13. /*    int ReadWrite ) */
  14. /* */
  15. /* ARGUMENTS: iDosDrv - The DOS drive number to get the sector from */
  16. /* Bpb - Ptr to bpb structure for the specified drive */
  17. /* Buf - Ptr to sector buffer */
  18. /* Sector - The root directory sector number based 0 */
  19. /* ReadWrite- Flags reading or writing sector - READ or WRITE  */
  20. /* RETURNS: int - OK if successfull else int 25h error code */
  21. /* */
  22. /* johnhe - 02-14-90 */
  23. /***************************************************************************/
  24. #include <alias.h>
  25. #include <disk_io.h>
  26. int ReadWriteRoot( int iDosDrv, struct BPB *Bpb, void *Buf, int Sector,
  27.  int ReadWrite )
  28. {
  29. struct ABSIO_PACKET absPack;
  30. absPack.uNumSectors = 1;
  31. absPack.pchBuffer = (char far *)Buf;
  32. absPack.lStartSector = (long)(Bpb->uReservSec +
  33. ((UINT)Bpb->uchNumberFats * Bpb->uSecPerFat) +
  34. (UINT)Sector );
  35.   return( AbsReadWrite( iDosDrv, &absPack, ReadWrite ) );
  36. }