jkgear
驱动牛犊
驱动牛犊
  • 注册日期2004-09-24
  • 最后登录2005-09-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2291回复:12

DefineDosDevice函数能否虚拟网络文件夹为磁盘

楼主#
更多 发布于:2004-12-22 15:46
用DefineDosDevice把文件夹虚拟为磁盘。在虚拟网络文件夹的时候出现的都是打叉的“网络磁盘“,而且打不开。
例如:
虚拟Candy主机的soft文件夹为虚拟盘j:
DefineDosDevice(DDD_RAW_TARGET_PATH,"j:","\\??\\UNC\\\\Candy\\soft");

请问DefineDosDevice到底可不可以虚拟网上文件夹为磁盘

[编辑 -  12/22/04 by  jkgear]

最新喜欢:

ljmmaryljmmar... hongsinghongsi...
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2004-12-22 16:58
可以,没问题的.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-22 17:16
虚拟Candy主机的soft文件夹为虚拟盘j:

“Candy主机的soft文件夹”是一个共享的可以被访问的目录?

这和直接映射网络驱动器有什么区别呢



[编辑 -  12/22/04 by  snowStart]
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
gongbin_net
驱动牛犊
驱动牛犊
  • 注册日期2003-06-18
  • 最后登录2005-06-07
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-22 19:09
用DefineDosDevice把文件夹虚拟为磁盘。在虚拟网络文件夹的时候出现的都是打叉的“网络磁盘“,而且打不开。
例如:
虚拟Candy主机的soft文件夹为虚拟盘j:
DefineDosDevice(DDD_RAW_TARGET_PATH,"j:","\??\UNC\\Candy\soft");

DWORD dwError= GetLastError();
你可以通过这个来查找错误
jkgear
驱动牛犊
驱动牛犊
  • 注册日期2004-09-24
  • 最后登录2005-09-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-12-23 08:22
#include "stdafx.h"
#include <windows.h>

#include <windows.h>

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
// 将驱动器C映射成UNC路径
char errortext[20];
if(!DefineDosDevice(DDD_RAW_TARGET_PATH,"R:","\\\\??\\\\UNC\\\\\\\\Candy\\\\soft"))
{
wsprintf(errortext,"Mapping driver failed: %d",GetLastError());
MessageBox(NULL,errortext,"error",MB_OK);
}
return 0;
}
用以上代码测试:
DefineDosDevice执行是成功的,返回值为1。
系统里出现了一个打着叉的“网络驱动器(R)”,不能打开
Candy主机的soft文件夹是共享的目录
在dos窗口下执行subst,显示了我的R盘映射的目录是 "R:\\: => UNC\\Candy\\soft"
为什么会这样呢,大侠帮帮忙
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-12-23 08:48
可能驱动还没有正确加载
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
jkgear
驱动牛犊
驱动牛犊
  • 注册日期2004-09-24
  • 最后登录2005-09-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-12-23 09:52
 
可能驱动还没有正确加载
 

你说的是什么驱动呢,虚拟文件夹为磁盘单用DefineDosDevice就可以,不需要驱动呀
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-12-23 12:43
就是filedisk.sys文件可能没有成功加载
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
RED_spring
驱动中牛
驱动中牛
  • 注册日期2002-07-28
  • 最后登录2016-11-06
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望19点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2004-12-23 13:02
DefineDosDevice只是在MS-DOS名和设备对象名称直接建立一个关联。 比如调用:DefineDosDevice(DDD_RAW_TARGET_PATH,"R:","\\??\\YourDiskDevice")) 后,针对"R:"的CreateFile等操作都会被Io Manager定位到YourDiskDevice。从而触发mount操作。

你调用DefineDosDevice(DDD_RAW_TARGET_PATH,"R:","\\??\\UNC\\\\Candy\\soft")) 中第二个参数不是系统可以识别的设备对象,后果就。。。   :P
jkgear
驱动牛犊
驱动牛犊
  • 注册日期2004-09-24
  • 最后登录2005-09-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-12-23 13:16
 
就是filedisk.sys文件可能没有成功加载


用DefineDosDevice把文件夹虚拟成磁盘不需要.sys文件。


 
DefineDosDevice只是在MS-DOS名和设备对象名称直接建立一个关联。 比如调用:DefineDosDevice(DDD_RAW_TARGET_PATH,"R:","\??\YourDiskDevice")) 后,针对"R:"的CreateFile等操作都会被Io Manager定位到YourDiskDevice。从而触发mount操作。

你调用DefineDosDevice(DDD_RAW_TARGET_PATH,"R:","\??\UNC\\Candy\soft")) 中第二个参数不是系统可以识别的设备对象,后果就。。。  


Candy主机的soft文件夹是共享的,可以从我的电脑访问,你说的“第二个参数不是系统可以识别的设备对象”是指是否可以访问还是别的什么
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-12-23 18:10
虚拟Candy主机的soft文件夹为虚拟盘j:

“Candy主机的soft文件夹”是一个共享的可以被访问的目录
其实就是映射网络驱动器了

用这个函数更好使
WNetAddConnection2

如:

TCHAR szUserName[32] = "Guest"
TCHAR szPassword[32] = "7828",
NETRESOURCE nr={0};
nr.dwType = RESOURCETYPE_ANY;
nr.lpLocalName = "R:",
nr.lpRemoteName = ="\\\\\\\\Candy\\\\soft";

WNetAddConnection2(&nr, szPassword, szUserName, FALSE);
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
jkgear
驱动牛犊
驱动牛犊
  • 注册日期2004-09-24
  • 最后登录2005-09-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-12-24 08:22
虚拟Candy主机的soft文件夹为虚拟盘j:

“Candy主机的soft文件夹”是一个共享的可以被访问的目录
其实就是映射网络驱动器了

用这个函数更好使
WNetAddConnection2

如:

TCHAR szUserName[32] = "Guest"
TCHAR szPassword[32] = "7828",
NETRESOURCE nr={0};
nr.dwType = RESOURCETYPE_ANY;
nr.lpLocalName = "R:",
nr.lpRemoteName = ="\\\\Candy\\soft";

WNetAddConnection2(&nr, szPassword, szUserName, FALSE);
 



thankyou,已经映射上了,程序如下:

#define  UNICODE
#define  _UNICODE

#include "stdafx.h"
#include <windows.h>
#include <winnetwk.h>
#include <tchar.h>
#include <lm.h>

#pragma  comment (lib,"mpr")
#pragma  comment (lib,"netapi32")


int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{

TCHAR szUserName[32] = "";
TCHAR szPassword[32] = "";
NETRESOURCE nr={0};
nr.dwType = RESOURCETYPE_ANY;
nr.lpLocalName = "R:";
nr.lpRemoteName  ="\\\\\\\\Server\\\\Candy";

WNetAddConnection2(&nr, szPassword, szUserName, FALSE);


return 0;
}
 
RED_spring
驱动中牛
驱动中牛
  • 注册日期2002-07-28
  • 最后登录2016-11-06
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望19点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
  • 社区居民
12楼#
发布于:2004-12-24 17:09
学习!
游客

返回顶部