在Window 64位系统中,System32文件夹存放64位的程序,SysWoW64文件夹存放32位程序,当一个32位程序访问System32文件夹时,系统会自动重定向到SysWoW64文件夹,如:当32位程序通过CreateProcess创建C:WindowsSystem32osk.exe进程时,系统自动重定向到C:WindowsSysWoW64osk.exe文件,而SysWoW64文件夹下并不存在nbtstat程序,于是返回的错误码就是2(即系统找不到指定的文件)。
解决该问题的方法是通过路径C:Windowssysnative****的方式来访问系统文件,上面的情况通过C:Windowssysnativeosk.exe这个路径就可以解决这个问题。
C:Windowssysnative这个文件夹实际上并不存在,是Windows 64位系统对32位程序访问64位程序的一个重定向的机制。