Article 4710 of vmsnet.internals: >>> EXE$TRNLNM. >>> >>> Invisible.mar (.c) does this just fine (kernel mode, IPL 8) >>> to keep its data around. >>> >>> Ehud >>> the currently offered version of INVISIBLE.C on the WKU-server neither calls EXE$TRNLNM (directly) nor raises IPL to SYNCH. it makes use of plain SYS$TRNLNM from K-mode at IPL 0, - so no problems to expect. if EXE$TRNLNM was indeed called (without further precautions), not only was there the page-fault issue as pointed out earlier, but also the risk of breaking synchronization (due to SCH$LOCKR_QUAD exiting with an IPL explicitly set to ASTDEL). >>> What is the correct, i.e., safe, way to translate system logical names >>> from within a device driver? That is, at fork IPL. >>> Forget it its too hard. >>> Neill. you don't mention whether your logical HAS to be translated at FIPL by all means; "within a device driver" does not necessarily imply this. why not just insert a call to EXE$TRNLNM in one of your FDT-routines ? then you'd remain @ ASTDEL, within process-context, without having to bother playing the mutex game yourself, and would be pageing-resistent. unfortunately, on AXP the symbol EXE$TRNLNM doesn't seem to be available for linking. therefore, the suggested method LNM$SEARCHLOG (+ LNM$LOCKR) would probably be best for both platforms. have fun - Herbert