Re: How to modify program when running on x64 platform?
What program? The "installer" or the device driver? Note that at no point have you
defined what you mean by "fail"! How do you think it is possible to answer a question of
the form "my program doesn't work" unless we know
What version of Windows you are using?
Are all the service packs and hot fixes installed?
Are you using a 64-bit driver?
Are you logged in with Administrator privileges?
What security is set on the Registry?
What security is set on the Windows, System32 and Drivers directories?
Overall, the whole concept seems more like a kludge that has finally met its match rather
than something that should have been expected to work at all. You should refer questions
like this to a driver newsgroup.
joe
****
Thanks for your great help.
Joseph M. Newcomer [MVP]
email: newco...@flounder.com
Web:http://www.flounder.com
MVP Tips:http://www.flounder.com/mvp_tips.htm- $Bp,i6Ho0zMQJ8;z(B -
- $Bp}<(Ho0zMQJ8;z(B -
Dear Sir:
I would add .manifest(below) to build my project and i found
where is problem.
I use API:CopyFile to copy sys into c:\windows
\system32\drivers, but i found
after running this api, the sys file is put at c:\windows
\SysWOW64\drivers.(
source code is below)
My driver file is 64-bit driver(build from WDK 6000) and my
windows version
is WinXP x64 SP1. I logged in by using Account:Administrator.
I would try to copy my driver into c:\windows\system32\drivers
manually when
fail to copy into c:\windows\SysWOW64\drivers. And plug-in the
device, the
driver is loaded successfully.
Why this api can't work at x64 platform?
Could you help me how to copy to correct folder?
//---------CopyFile-------------//
GetSystemDirectory(m_cWinSysDir,MAX_PATH);
GetModuleFileName(NULL, szSource, MAX_PATH);
if(!m_bWin64) //Win32
_tcscat_s(szSource, MAX_PATH, _T("\\usbflt.sys"));
else//Win64
_tcscat_s(szSource, MAX_PATH, _T("\\usbflt64.sys"));
_tcscpy_s (szDest,MAX_PATH,m_cWinSysDir);
_tcscat_s(szDest, MAX_PATH, _T("\\drivers\\usbflt.sys"));
if (!CopyFile(szSource, szDest, FALSE))
{
MessageBox(_T("Copy driver:usbflt.sys failed!"), _T("USB Fast"),
MB_ICONWARNING);
return false;
}
//----------.manifest------------//
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1'
manifestVersion='1.0'>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>