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

操作系统开发

开发平台:

Visual C++

  1. ;******************************************************************************
  2. ;
  3. ;   (C) Copyright MICROSOFT Corp., 1988
  4. ;
  5. ;   Title: smartdrv.inc - smartdrv equates & structures
  6. ;
  7. ;   Version: 1.00
  8. ;
  9. ;   Date: 15-Sep-1989
  10. ;
  11. ;   Author: ARR
  12. ;
  13. ;------------------------------------------------------------------------------
  14. ;
  15. ;   Change log:
  16. ;
  17. ;      DATE REV     DESCRIPTION
  18. ;   ----------- --- -----------------------------------------------------------
  19. ;   15-Sep-1989 ARR Original
  20. ;   30-Oct-1989 MC  Borrowed from AAR for use in win.com. Pared down to only
  21. ;                   SD_IOCTL_Read because thats all I need. I need only look
  22. ;                   at the size of SD. I do not have to shrink it.
  23. ;   11-Dec-1989 MC  Add needed struc's and support for talking to LIM drivers
  24. ;
  25. ;==============================================================================
  26. ;
  27. ;
  28. ; Device name of SMARTDRV
  29. ;
  30. SD_DEV_NAME equ "SMARTAAR",0    ; Name for SD driver IOCTL opens.
  31. EMM_DEV_NAME    equ     "EMMXXXX0",0    ; Name for EMM driver IOCTL opens.
  32. ;
  33. ;
  34. ; Structure of the data returned on the SMARTDRV IOCTL read call
  35. ;
  36. SD_IOCTL_Read struc
  37.     SD_IR_Write_Through   db ?   ; Write-through flag, currently always 1
  38.     SD_IR_Write_Buff   db ?   ; Buffer write flag, currently always 0
  39.     SD_IR_Enable_Int13   db ?   ; Cache enable flag, 1 = enabled
  40.     SD_IR_Driver_Type     db ?   ; Type 1 (XMS cache) or 2 (EMS cache)
  41.     SD_IR_Tick_Setting   dw ?   ; Ticks between flushes, currently unused
  42.     SD_IR_Lock_Cache   db ?   ; Non-zero if cache is locked
  43.     SD_IR_Reboot_Flush   db ?   ; Non-zero if cache should be flushed on reboot
  44.     SD_IR_Cache_All   db ?   ; Zero if full track writes are not cached
  45.     SD_IR_Double_Buffer   db ?   ; Dbl buff state 0=Off, 1=On, 2=Dynamic
  46.     SD_IR_Original_INT13  dd ?   ; INT 13 address SMARTDRV hooked
  47.     SD_IR_Minor_Ver   db ?   ; Minor version number
  48.     SD_IR_Major_Ver   db ?   ; Major version number
  49.   dw ?   ; Unused
  50.                     ; Next three values are used for computing
  51.                     ; cache statistics.  They may be scaled rather
  52.                     ; than absolute values
  53.     SD_IR_Total_Sec_Read  dw ?   ; Count of sectors read
  54.     SD_IR_Cache_Sec_Read  dw ?   ; Count of sectors read from cache
  55.     SD_IR_Track_Sec_Read  dw ?   ; Count of sectors read from track buffer
  56.                     ; Cache statistics
  57.     SD_IR_Cache_Hit_Ratio db ?   ; = Cache_Sec_Read * 100 / Total_Sec_Read
  58.     SD_IR_Track_Hit_Ratio db ?   ; = Track_Sec_Read * 100 / Total_Sec_Read
  59.     SD_IR_Total_Tracks   dw ?   ; Number of tracks in the cache
  60.     SD_IR_Total_Used   dw ?   ; Tracks currently in use
  61.     SD_IR_Total_Locked   dw ?   ; Tracks currently locked
  62.     SD_IR_Total_Dirty   dw ?   ; Tracks currently dirty
  63.                     ; Information for resizing cache
  64.                     ; All values are in terms of 16Kb pages.
  65.     SD_IR_Current_Size   dw ?   ; Current size of the cache, in 16Kb pages
  66.     SD_IR_Dev_Size   dw ?   ; Original size requested by user
  67.     SD_IR_Min_Cache_Size  dw ?   ; Minimum allowable size
  68. SD_IOCTL_Read ends
  69. SMRTDRVInfo SD_IOCTL_Read  <>
  70. ;
  71. ; Structure of the data returned on the IOCTL call to the EMM driver
  72. ;
  73. EMM_Import_IOCTL_Data struc
  74.     EMM_Import_Data_Phys_Ptr dd ?   ; PHYSICAL 32 bit address of the
  75.     ; EMM_Import_Data structure
  76.     EMM_Import_API_Version_Maj db ?   ; API version #
  77.     EMM_Import_API_Version_Min db ?
  78. EMM_Import_IOCTL_Data ends
  79. ;
  80. ; For the IOCTL to get the data and version number of importable EMM info
  81. ;   the IOCTL read subfunction is encoded in the first byte of the IOCTL
  82. ;   read buffer.
  83. ;
  84. EMM_IMPRT_IOCTL_FUNC equ 1
  85. EMM_OK                 equ 0
  86. ;
  87. ; Current version number restriction of WIN386 on EMM_Import_API_Version
  88. ;
  89. EMM_IMPORT_MIN_VER equ 0100h
  90. EMM_IMPORT_MAX_VER equ 0100h
  91. EMMIoctlBuf db EMM_IMPRT_IOCTL_FUNC
  92. db (SIZE EMM_Import_IOCTL_Data) dup (0)
  93. SMRTDRVName db SD_DEV_NAME     ; Name for smartdrv IOCTL opens.
  94. EMM_Name        db EMM_DEV_NAME    ; Name for EMM IOCTL opens.