我正在尝试在Windows CE 6设备上配置SMB文件共享服务器.
我最初的尝试主要是使用桌面版的NK.exe.当我启动时,SMB0:作为smbserver.dll运行
我已设置(希望)合适的注册表值,然后重新启动SMBServer进程:
服务刷新SMB0:
但是,当我尝试连接SMB客户端时,我从未看到通告的服务(例如,通过在桌面窗口中查找文件共享,或尝试将SMB客户端连接到WinCE设备的IP地址).
我想知道SMB注册表设置是否有必要在启动时可用?我的设备不使用基于配置单元的注册表,因此注册表设置在启动时不可用.我希望刷新SMB服务器进程足以让文件共享.这样,我可以在我的应用程序中以编程方式设置注册表值,重新启动SMB服务,而不必重建kiosk NK.exe(kiosk NK.exe似乎包含smbserver.dll - 它是由一个不是很称职的第三方,重建它的工具又回到Visual Studio 2005.重建NK.exe会很"有趣".
我是否需要重建操作系统才能使用基于配置单元的注册表?
有任何想法吗?
我的注册表设置都在HKEY_LOCAL_MACHINE下:
Ident\Name "aName"
Ident\Desc, "A string"
Ident\OrigName "Another string"
\Services\Smbserver\SMB\Shares\VirtualRoot\Type Dword:0
\Services\Smbserver\SMB\Shares\VirtualRoot\Path "a valid path"
\Services\Smbserver\SMB\Shares\VirtualRoot\UserList "*"
\Services\Smbserver\AdapterList "*"
\Services\Smbserver\Keep DWord:0
\Services\Smbserver\Prefix "SMB"
\Services\Smbserver\Index DWord: 0
\Services\Smbserver\SHARES\UseAuthentication DWord:0L
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我暂时关闭了身份验证 - 我希望首先让它在CE桌面环境中运行,然后添加身份验证,并使其在Kiosk环境中工作.
我会感激任何帮助!
我想说你需要"Keep"=dword:1按照MSDN 文档进行设置:
将默认值设置为 1。如果将其设置为零 (0),则 DLL 将在初始化后立即卸载。
SMB 服务器不需要基于配置单元的注册表。我们已经在多个仅使用基于 RAM 的注册表的项目中使用了它。
作为参考,这些是我们在 CE 7 上使用的注册表设置,将根文件夹公开为\\<IP address>\Root:
[HKEY_LOCAL_MACHINE\Services\SMBServer\Shares\Root]
"Path"=""
"Type"=dword:0
[HKEY_LOCAL_MACHINE\Services\SMBServer]
"AdapterList"="*"
"Keep"=dword:1
"Prefix"="SMB"
"Index"=dword:0
"DLL"="smbserver.dll"
"Order"=dword:12
[HKEY_LOCAL_MACHINE\Services\Smbserver\Shares]
"UseAuthentication"=dword:0
"NoSecurity"=dword:1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3269 次 |
| 最近记录: |