JT driver - tricks driver. Intercepts i/o and does things with help of daemons. Control flags in ucb$l_ctlflgs work by bits. 1 - Allows access filtering. Used to recognize files to move, check security on, etc. 2 - Examine modify 8 - CBT setup on create (only) 16 - Look at create function (does CBT setting and possible space control) 32 - CBT on create or modify 64 - Send del dmn msg only if filenum stored, if set. Otherwise send always. 128 - If set allow delete daemon to control deletion 65792 - If either bit set (65536 + 256), look at deaccess (close) 512 - Space control ok if set 1024 - If set, check for FIDs with rvn bit 8 set and high filenum bit 8 set and lets access filtering be done. 2048 - Prevent opens if device is privately owned on files save by volume owner. Blocks access EVEN if privs. 4096 - Allow size control only if aldef bit set 16384 - Set aldef bit always to use default alloc. 32768 - Pretend we see an ACE on ALL files on disk 65792 - If either bit set (65536 + 256), look at deaccess (close) 262144 - If set, examine only files with filenum in kernel list (instead of looking for ACL on all). Daemons exist for: open - gets control on io$_access if my ACE is there or if filenum is in knl list in ucb. Handles file moving and much security, softlinks, etc. extend - gets control on extend & create if disk has too little free space left and request is < 1/8 of disk size. delete - gets control on delete operations. Can copy files to scratch area. Should also check security and disable operation if security checks so indicate. Currently all daemons live in JTDMN.EXE as one. The open daemon can run a script that will move files. It is expected this script will call the get-space script if space must be obtained. There is no separate space check in file moving, since DCL can readily determine if enough free space exists for the file in question and the size needed is passed as a parameter. $! set up logicals JT suite needs $pra $nm=f$device("*VDB*") $if (nm .nes. "") then goto gotvd $sysgen connect vdb0:/noada/driver=vdbdriver $sysgen connect vdb1:/noada/driver=vdbdriver $set comm sys$system:asnvdm6 $asnv/assign vdb0: dc2:[zzdisks]test2.dsk $asnv/assign vdb1: dc2:[zzdisks]test1.dsk $mou/sys vdb0: test2 $mou/sys vdb1: test1 $gotvd: $ass/sys vdb1:[junk] jtd$db $! command processes live here: $! filrst.com file fid1 fid2 filsiz $! makspc.com diskname nblks $ass/sys vdb1:[junk] gcy$cm $ass/sys n gce$delsav $jta*uthmaint:==$usr$root:[everhart]jtauthmaint $xjta:=="$usr$root:[everhart]jtauthmaint dka700:[y.everhart]junk.junk\ I+KS12U+<*>VPTY+ $!jtau dka700:[y.everhart]junk.junk\ I+KS12U+<*>VPTY+ $! ctl mode: 1-open, 1024 = bogus fid chk, 40000x=look at files in driver only $! 65792=chk close, 128=delete control, 16=create exam, 8=cbt on create $! 32=cbt set, 512=space ctl, 2=chk modfify?, 16384=aldef-only, $! 4096=always ctl size $set comm sys$system:jtdmn $jtdo:==jtdmn/fcnmsk:66435 $dp % ====== Internet headers and postmarks (see DECWRL::GATEWAY.DOC) ====== % Received: from mail1.digital.com by us2rmc.zko.dec.com (5.65/rmc-22feb94) id AA25382; Thu, 24 Aug 95 19:17:47 -040 % Received: from gce.mv.com by mail1.digital.com; (5.65 EXP 4/12/95 for V3.2/1.0/WV) id AA06545; Thu, 24 Aug 1995 16:10:52 -070 % Date: Thu, 24 Aug 1995 19:09:50 -0400 (EDT) % From: EVERHART@gce.mv.com % To: row::everhart % Message-Id: <950824190950.d7@gce.mv.com> % Subject: jtdriver.doc