ViP.at - Assigns auflisten

Wie bekommt man eine List von allen gemounteten Laufwerken und alles Assign die momentan in System sind ?

Eigentlich muesste es doch ueber diese Stuktur auslesbar sein. Aber von welcher Funktion oder anderen Strktur bekomme ich eine Zeiger auf die DeviceList ?!

Noch eins wenn ich mit dieser Strukt einen Zeiger auf z.B. 'DH1:' hab kann ich dann das 'lock' in anderen Funktionen weiter verwenden oder muss ich noch ein Lock fuer der entsp. Device machen ?

Assigns()
 
  struct DeviceNode          *devicenode;
  struct DosInfo             *dosinfo;
  struct RootNode            *rootnode;
  extern struct DosLibrary   *DOSBase;
 
  BPTR lock;
  UBYTE dname[30];
  char temp[256];
 
  rootnode = (struct RootNode *) DOSBase->dl_Root;
  dosinfo = (struct DosInfo *) BADDR(rootnode->rn_Info);
  devicenode = (struct DeviceNode *) BADDR(dosinfo->di_DevInfo);
 
  printf("Address   Directory            Path\n");
  while(devicenode!=0)
  {
    if(devicenode->dn_Type==(ULONG)DLT_DIRECTORY)
    {
      lock=devicenode->dn_Lock;
      NameFromLock(lock, temp, 50);                       /* 2.0 only !!! */
      strcpy(dname, ConvBtoC (devicenode->dn_Name<<2));
      if(!(strcmp(dname,"RAM DISK"))) strcpy(dname,"RAM");
      strcat(dname,":");
      printf("%08lx  %-20.20s %s\n",devicenode,dname,temp);
    }
    devicenode = (struct DeviceNode *) BADDR(devicenode->dn_Next);
  }
  return(0);
 
 
Die Funktion zeigt alle assign's. Funktion ConvBtoC wandelt BCPL in C um. Kann man unter 2.x sicher besser programieren. Für alle gemounteten Geraete wird das Listing doch schon arg gross.

© 1995 by Thomas Dorn
Design by comdes