mount drives in NT object namespace

svn path=/trunk/; revision=7947
This commit is contained in:
Martin Fuchs 2004-01-31 23:43:28 +00:00
parent 18feaceddc
commit 4e8837594f
2 changed files with 11 additions and 8 deletions

View file

@ -3,7 +3,7 @@
<tr>
<td><address style="align: right;"><small>
ROS Explorer Source Code Documentation
<br>generated on 31.01.2004 by <a href="http://www.doxygen.org/index.html">
<br>generated on 01.02.2004 by <a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0>
</small></address>
</td>

View file

@ -31,6 +31,7 @@
#include "entries.h"
#include "ntobjfs.h"
#include "winfs.h"
#include "regfs.h"
@ -254,15 +255,17 @@ void NtObjDirectory::read_directory(int scan_flags)
//@@_toscan |= INF_DESCRIPTION;
entry = new NtObjDirectory(this, buffer);
if (*w32fd.cFileName>='A' &&*w32fd.cFileName<='Z' && w32fd.cFileName[1]==':') {
if (!_tcsncmp(buffer,TEXT("\\??\\"),4) || !_tcsncmp(buffer,TEXT("\\GLOBAL??\\"),10)) {
///@todo mount drive at this entry
entry = NULL;
if (*w32fd.cFileName>='A' &&*w32fd.cFileName<='Z' && w32fd.cFileName[1]==':')
if (!_tcsncmp(buffer,TEXT("\\??\\"),4) || // NT4
!_tcsncmp(buffer,TEXT("\\GLOBAL??"),9)) { // XP
w32fd.dwFileAttributes |= FILE_ATTRIBUTE_DIRECTORY;
entry = new WinDirectory(this, w32fd.cFileName);
}
}
if (!entry)
entry = new NtObjDirectory(this, buffer);
}
else if (type == KEY_OBJECT) {