home *** CD-ROM | disk | FTP | other *** search
/ PC-Online 1998 February / PCOnline_02_1998.iso / filesbbs / os2 / dsksl096.arj / DSKSL096.ZIP / dsksleep.doc < prev    next >
Encoding:
Text File  |  1997-11-23  |  15.5 KB  |  418 lines

  1. -*- Mode: indented-text -*-
  2. --- $Id: dsksleep.doc,v 1.11 1997/11/23 23:04:50 vitus Exp $
  3.  
  4.     Disk Sleeper Filter - Driver Dokumentation
  5.  
  6. Description
  7.  
  8.     Disk Sleeper Filter is  a filter driver  to stop your _SCSI_ disks
  9.     while you're doing something else than working with your computer.
  10.  
  11.  
  12. Legal stuff (we need this, don't we?)
  13.  
  14.     The author  disclaims all warranties  as to this software, whether
  15.     express  or  implied,  including  without limitation  any  implied
  16.     warranties of  merchantability, fitness for  a particular purpose,
  17.     functionality,  data  integrity  or   protection,   in so  far  as
  18.     permitted by applicable legislation.
  19.  
  20.     All trademarks are property of their respective owners and appear
  21.     for identification purposes only.
  22.  
  23.  
  24. Archive Contents
  25.  
  26.     DSKsleep.flt    the filter itself
  27.     DSKsleep.ddp    installation script
  28.     DSKSleep.doc    this text
  29.     DSKSleep.history    version history
  30.     dsl.exe        small utility to change timeouts
  31.     regme.exe        to insert your registration code into DSKSleep.flt
  32.     DSKSlpub.h        public interface for programmers
  33.     dsl.c        sample application, source of dsl.exe
  34.     DSKSleep.sym    symbol file, to help debugging
  35.     file_id.diz        short description for BBS
  36.  
  37.  
  38. Installation
  39.  
  40.     Make a backup of your  system.  You should not  need it but better
  41.     safe than sorry...
  42.  
  43.     It is recommended you  have an OS/2  boot disk ready, just in case
  44.     the system locks up during the boot process and you want to remove
  45.     the  driver.   On Warp you  may  use use   ALT-F1, C for  the same
  46.     purpose to boot to a command line with your orginal Config.Sys.
  47.  
  48.     Execute  DDINSTAL from a  OS/2 command prompt  or double-click the
  49.     Device Driver Install object (located in  the System Setup folder)
  50.     if your system is Warp.  Change the source directory if neccessary
  51.     and a selection  list will open   asking you to  install the 'SCSI
  52.     Disk Sleeper'.   Mark  that line and  click  on  OK.  Reboot  your
  53.     machine.
  54.  
  55.     Installation by hand is easy:
  56.  
  57.     Copy  DSKSLEEP.FLT to c:\ or  c:\os2\boot, assuming c: is your
  58.     boot drive.
  59.  
  60.     Edit  your  c:\Config.Sys file (i.e.  using  the  OS/2 "System
  61.     Editor"):
  62.  
  63.     Add the following line to your Config.Sys:
  64.     BASEDEV=DSKSLEEP.FLT /V        (no subdirectory name!)
  65.  
  66.     The  position   of  'BASEDEV=DSKSLEEP.FLT' in  Config.Sys  doesn't
  67.     matter.  If, however, you encounter  problems try top of file  (if
  68.     this  solves  your problems please report  with  a listing of your
  69.     Config.Sys).
  70.  
  71.     WARNING: as this  piece of software accessses  vital parts of your
  72.     system (without  disks   there  is not  much   to do  :),   it  is
  73.     recommended to  use  the '/DEBUG:1' (see   below)  switch at least
  74.     once.  If  this succeeds use 'dsl' to  set a  really short timeout
  75.     (i.e.  3 minutes), let  the disks be stopped and  do any access to
  76.     restart them (click on WPS, open folders, etc.).
  77.  
  78.     If both test complete successfully you should regard DSKSleep as a
  79.     working piece of software on your computer.
  80.  
  81.     If the first try to restart a disk isn't successfull DSKSleep will
  82.     beep and do a  retry.  If that retry  fails DSKSleep will beep and
  83.     do a retry.  If that retry fails...  If your beeping machine hangs
  84.     on disk restart you know where it comes from. <g>
  85.  
  86.  
  87. Options
  88.  
  89.     /V
  90.     Verbose, display some usefull and unusefull information (this
  91.     switch is always enabled in the unregistered version)
  92.  
  93.     /SR
  94.     Shutdown Restart: some  BIOS   may not be   able to  handle  a
  95.     stopped device when they do their initial scan.  They may have
  96.     a  'Send START command' setting  to  solve this problem but if
  97.     they don't try  '/SR'.  It will  stop DSKSleep from stopping a
  98.     disk  once the shutdown   started and restart  any  disk still
  99.     sleeping when shutdown ended.
  100.  
  101.     /DEBUG
  102.     Debugging display
  103.  
  104.     /DEBUG:1
  105.     Debugging display and start/stop all devices once when driver
  106.     is loading.  Devices excluded with /!UT aren't tested.
  107.  
  108.     /UT:(a1,u1,min1),(a2,u2,min2)
  109.     List of disks with special timeout needs.  You may exclude the
  110.     'min' value (or set it zero), in this cause the default
  111.     (possible changed via '/T:') is used.
  112.  
  113.     /!UT:(a1,u1),(a2,u2)
  114.     List of disks to exclude from sleeping.  They are added to
  115.     internal tables but never stopped.  Use IOCtl (as in dsl.exe)
  116.     to enable sleeping these disks.
  117.  
  118.     /T:<min>
  119.     Set sleeping time to <min> minutes.  Default: 30 minutes.
  120.     Remember that starting a disk drive means stress for it's
  121.     mechanical parts and do not set this time to low.  Maximum
  122.     time to set via '/T:<min>' is 1092 minutes (about 18 hours).
  123.  
  124.  
  125.     The 'a' and 'u' values in above options  are indices.  'a' depends
  126.     on the ADD order in Config.Sys and numbers all adapters (including
  127.     floppy controllers,  etc.).  'u' is  an  unit index which  the ADD
  128.     determines.  BTW: these are the same values as dsl.exe displays if
  129.     executed without parameters.
  130.  
  131.     Examples:
  132.  
  133.     Stop first disk on adapter 1  after 20 minutes, second disk on
  134.     that  adapter after 15   minutes.  All  other  disks   will be
  135.     stopped after 30 minutes (the default value):
  136.  
  137.     BASEDEV=dsksleep.flt /UT:(1,0,20),(1,1,15)
  138.  
  139.  
  140.     Don't stop first disk  on adapter 2, all  other disks shall be
  141.     stopped after 60 minutes:
  142.  
  143.     BASEDEV=dsksleep.flt /!UT:(2,0) /T:60
  144.  
  145.  
  146.     Using an explicit list of devices, specify default timeout for
  147.     all of  them.    Note  that  this  command  line  does nothing
  148.     usefull:
  149.  
  150.     BASEDEV=dsksleep.flt /UT:(1,0),(1,2),(1,3)
  151.  
  152.  
  153.     One  word  about screen output:    BASEDEV drivers cannot  display
  154.     anything   on the console  immediately,  they queue messages to be
  155.     displayed later by  the  system initialization.  Due to  this fact
  156.     you might not   see any  messages at  all  (if system  hangs/traps
  157.     before they are yanked to console).
  158.  
  159.     Best chances to see anything is to copy  this driver to the second
  160.     of your  "utility disks" (or installation  disks  if you don't run
  161.     Warp), change  the Config.Sys there (BASEDEV=dsksleep.flt /DEBUG:1
  162.     and boot from them.  Now you don't rely on any hard disk.
  163.  
  164.     Another way is to use 'dsl -m' to display  all messages long after
  165.     the boot completed.  But this implies  that DSKSleep can be loaded
  166.     without traps or hangs.
  167.  
  168.  
  169. DSL Utility, IOCtl Interface
  170.  
  171.     To change the timeout values on a running  system, a small utility
  172.     named DSL is included.  This thing started as a debugging tool and
  173.     is totally command line based.
  174.  
  175.     Calling DSL without any options will display a list of devices and
  176.     their  timeout values.   The  following  opions may  change  DSL's
  177.     behavior:
  178.  
  179.     -?
  180.  
  181.     Display help screen and exit.
  182.  
  183.     -c <a1>,<u1>,<m1> [<a2>,<u2>,<m2>]
  184.  
  185.     Change timeout  of unit <u1> at adapter   <a1> to <m1> minutes
  186.     and unit <u2> at adapter <a2> to  <m2> minutes.  Supply simple
  187.     numeric values  for all <>  parameters (values  from output of
  188.     DSL w/o parameter),  insert a comma  between adapter, unit and
  189.     timeout  parameter (no blank!)   and at  least a single  blank
  190.     between the first and the second adapter-unit-timeout triple.
  191.  
  192.     Example, on my system DSL<return> says:
  193.  
  194.       Current settings:
  195.        Adapter Unit   Minutes
  196.          1       0       40
  197.          1       1       30
  198.  
  199.     To change the first device to 10 minutes  and the second to 15
  200.     I would use:
  201.  
  202.         DSL -c 1,0,10     1,1,15
  203.  
  204.     Got  the point?  If  you   find this difficult  to  understand
  205.     netmail me a better description and I  will it include in this
  206.     file. :-)
  207.  
  208.     -q
  209.  
  210.     Display seconds left until a device will be stopped.  That's a
  211.     value which is resetted  to  your configured timeout value  on
  212.     every I/O.
  213.  
  214.     -i <a1>,<u2>,<s1>
  215.  
  216.     Change timer  value for unit    <u1> on adapter  <a1> to  <s1>
  217.     seconds.  Same syntax as '-c' parameter.  If you set <s1> to 0
  218.     the device  will  be stopped  immediately (nearly).   However,
  219.     remember that any I/O will reset a timer to it's maximum.
  220.  
  221.     -m
  222.  
  223.     Displays boot time messages.  Output will be something like:
  224.  
  225.  
  226.         SCSI Disk Sleeper
  227.         Copyright 1996-97 by Vitus Jensen (2:2474/424)
  228.         Not registered for commercial use
  229.         Adapter 1, Unit 0 installed (40 min)
  230.         Adapter 1, Unit 1 installed (30 min)
  231.  
  232.  
  233.     Now,  if  you do  not like DSL   at all, feel  free to  modify it.
  234.     Sourcecode  and  a  header   how to  access DSKSleep's  IOCtl   is
  235.     provided.  Perhaps it  will be nice to  have a PM version  of DSL?
  236.     DSL is enough for me but if you write  (or thinking to write) such
  237.     a beast  as Share-/Freeware, netmail me  and I will place a notice
  238.     about it here.
  239.  
  240.     BTW: there is  a 'hidden' option  '-v'  in DSL  (as in  most of my
  241.     programs) it may help to insert it in front of any other option...
  242.  
  243.  
  244. Tested Equipment
  245.  
  246.     DSKSleep should work on any  computer running OS/2 2.0 or  higher.
  247.     It should work  with any SCSI-related software  you  may think of.
  248.     That, at least, is the theory...
  249.  
  250.     Please mail  tested combinations (successfull or  failed) so I can
  251.     try to figure out where  problems reside and make DSKSleep better.
  252.     Especially usefull would be information from machines running more
  253.     than simple  HPFS  and/or  FAT  drives (i.e.  HPFS386,   tapes, cd
  254.     writer, ...).
  255.  
  256.     Any report should include at least CPU, RAM, OS/2 Version, FixPak,
  257.     Filesystem,   SCSI  Controller, ADD   Driver (incl. Version), SCSI
  258.     Disks, other SCSI Devices.
  259.  
  260.     If '/DEBUG:1' fails a   list of screen  messages would  be greatly
  261.     appreciated.  If the driver loadds please include the output of
  262.     'dsl -m'.
  263.  
  264.  
  265.     I have  discontinued to publish  all equipment/tester combinations
  266.     as this started to be too much stuff to write <g>.  Thanks for the
  267.     feedback!
  268.  
  269.     Successfully tested equipment include:
  270.  
  271.     486DX, Pentium, Pentium Pro and compatibles at different speeds
  272.     equipped with 16 to 64 MByte RAM.
  273.  
  274.     Controller: AHA1542B, AHA1520, AHA2940, AHA2940UW, AIC7860, AIC6360,
  275.         NCR810, NCR8150
  276.  
  277.     Disks: Conner    CFA 540S
  278.        HP        C3325A
  279.        IBM        DFHS S2F, DORS 32160S, DPES 31080,
  280.        Quantum    LPS 540, 730
  281.        Seagate    Wren Runner 7
  282.        WD        SP4200
  283.  
  284.  
  285.     Betatesters include (but are most certainly not limited to):
  286.  
  287.     Petric Frank, Jochen Schnürle, Thomas Waldmann, Stefan Mielke,
  288.     Herwig  Bauernfeind, Thorsten  Kowalski, Murat  Kenger, Günter
  289.     Bartmann, Markus Noller,  Stephan Bieker, Nicolai Dufva  and a
  290.     lot more I probably forgot or who didn't write any comments.
  291.  
  292.  
  293.     DSKSleep is written (and tested before release) on the following
  294.     machines:
  295.  
  296.     486DX4-133, 32 MB RAM, 256 KB Cache, ATI Mach32 VL
  297.     AHA6360 (Adaptec VL)
  298.     Western Digital Piranha SP4200 (200MB SCSI-II)
  299.     IBM DORS (2.1GB SCSI-II)
  300.     TEAK CD-ROM 516SK
  301.     Tandberg TDC 3600 (250MB SCSI-I, QIC)
  302.     OS/2 Warp 3 w/ WinOS2 (FP#17, CHKDSK32, NEWDASD, protectonly)
  303.  
  304.     486DX-40, 20 MB RAM, 128 KB Cache, ATI Mach8
  305.     AHA1542B
  306.     Seagate Wren Runner 7 (1GB SCSI-I, by Imprimis)
  307.     AppleCD 150 (Sony CDU-8002 Apple-SCSI + CD800X.FLT)
  308.     OS/2 Warp 3 plus Warp Server Advanced (HPFS386, protectonly)
  309.  
  310.     Remarks
  311.         Wren Runner still  cannot be  stopped.  SCB completes  w/o
  312.         errors but device continues to turn.
  313.  
  314.  
  315. Registration
  316.  
  317.     In  general, this driver is  a  freeware program for noncommercial
  318.     users.  If  you are a noncommercial  user, there is no  charge and
  319.     you  should  better spend  your money  on  something else from the
  320.     large shareware  market  for OS/2.   However I  would like to hear
  321.     from  you on  which software/hardware combinations  this driver is
  322.     used successfully.  Just write a  netmail or a nice postcard  (see
  323.     addresses  below).   This will tell my   girlfriend the spent time
  324.     wasn't totally useless. <g>
  325.  
  326.     The  unregistered version isn't   crippled in any  way.   The only
  327.     difference is that the registered version won't  display a logo if
  328.     not told so via '/V'.
  329.  
  330.     You are encouraged to copy and pass on the unregistered version of
  331.     this driver, if  the archive is  distributed in  its original form
  332.     (complete and unmodified).  Please don't charge any money for the
  333.     distribution itself exceeding the costs of media, etc.
  334.  
  335.  
  336.     You are a commercial user if your machine is being run by (or for)
  337.     a   corporation, government, company,  foundation,   or  any other
  338.     organization.  In this case I expect you to register this software
  339.     after a reasonable testing period (60 days).
  340.  
  341.     On registration you will receive a key based on  your name to feed
  342.     in the regme.exe program to change the startup logo and remove the
  343.     '/V always'  mode.  You will NOT receive  a new archive.  This key
  344.     will be valid for all versions of the driver.
  345.  
  346.     Registration fee is DM 25,- per key or the equivalent in a foreign
  347.     currency.  Payment may   be  made through  Eurocheque  (europe) or
  348.     postal money order or transfer to my bank  account.  If you decide
  349.     to send this  money  inside a simple envelope  (I'm  fair but  the
  350.     postman may not ;-) use DM or danish or swedish crowns as I travel
  351.     those countries regulary.
  352.  
  353.     Response will  be through fidonet crashmail  (strongly preferred),
  354.     fidonet netmail, FAX  or EMail.
  355.  
  356.     If you cannot be reached elecronically and don't have a friend who
  357.     can, you  may  request an answer   by snail mail.   Please add the
  358.     estimated costs for the  letter to the  registration  fee.  German
  359.     users: simply include   a self-addressed envelope  (with stamps on
  360.     it).  I will NOT  return a key  without at least some  afford from
  361.     your side to account for the costs of the reply mail!
  362.  
  363.     For all  orders: please WRITE YOUR  NAME CLEAR as  the key will be
  364.     based on it  and supply a  way to return the  key back to you.  It
  365.     may be best to  first test an   electronic channel before  sending
  366.     money in any way.
  367.  
  368.  
  369. Source Code Availability
  370.  
  371.     What do you need it for?
  372.     As an example?  It's  written using Microsoft C  6.0 and  the OS/2
  373.     DDK.  If  you already own  the DDK you  have many  examples how to
  374.     write filter drivers.  If you  don't you get nothing usefull  from
  375.     my source code.
  376.  
  377.     Additions: the OS/2 DDK  is available for  download at no cost via
  378.     http://service.boulder.ibm.com/ddk.   I am    releasing a  simpler
  379.     filter driver  including   source  code.  Look  for   dskprf??.zip
  380.     (modifies mode pages).
  381.  
  382.     If your policy is to have any program you use in source code, you
  383.     may contact me, explain your reasons and we will handle this on a
  384.     personal base.
  385.  
  386.  
  387. ToDo List
  388.  
  389.     - Resource Manager Calls (plug n' pray <g>)
  390.     - Recode driver/DDK routines to use WatCom C
  391.     - make DSKSleep APM-aware so that disk stopping is controlled
  392.       by APM and internal timers.  This can't be added until I get an
  393.       APM-capable mainboard.
  394.     - Show system activity if a disk is stopped?  Flash keyboard LEDs,
  395.       activate SCSI LED, beep, humm, dance?
  396.     - More?  IOCtls?  Netmail any ideas.
  397.  
  398.  
  399. Author
  400.  
  401.     Vitus Jensen (under assistance of Liesbeth  who mostly talks about
  402.     cows(moo!) and tractors)
  403.  
  404.     Address: Tischlerstr. 8, D-30916 Isernhagen, Germany
  405.     Bank Account: Kto 476861-203, Postbank Hamburg, BLZ 20010020
  406.     Fidonet: 2:2474/424 (V32bis, X75), request DSKSL for newest version
  407.     EMail: none, maybe soon: Vitus_Jensen@teaparty.fido.de
  408.     FAX: +49-5136-893003 (thanks to Harald Pollack's FRec)
  409.     BBS: +49-5136-893003 (V32bis, X75)
  410.  
  411.     Music: Chet Baker, Dinah Washington, Antonio Carlos Jobim, ...
  412.  
  413.     Written for Version: 0.96
  414.     Date: 23/11-1997
  415.  
  416.  
  417. === The End ===
  418.