[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\HCD_HSH1]
"HcdCapability"=dword:4
有这么说的:
Device that hosts RNDIS Host using UHCI may hang after Suspend/Resume
To avoid this problem, you must edit the uhci.reg file so that it does not support SUSPEND_RESUME. This file is located in %_WINCEROOT%\public\common\oak\drivers\usb\hcd\uhc.
Change the following text:
"HcdCapability"=dword:5 ;HCD_SUSPEND_ON_REQUEST|HCD_SUSPEND_RESUME
To
"HcdCapability"=dword:4 ;HCD_SUSPEND_ON_REQUEST
With this change, the UCHI host controller on the Windows CE-based device will unload the driver for a function device, and will reload it on resume. Therefore, for RNDIS, the RNDIS host interface is unloaded and then reloaded.
WINCE600\PUBLIC\COMMON\OAK\DRIVERS\USB\HCD\USB20\EHCI\chw.cpp
DWORD CHW::SetCapability(DWORD dwCap)
{
m_dwCapability |= dwCap;
if ( (m_dwCapability & HCD_SUSPEND_RESUME)!=0) {
KernelIoControl(IOCTL_HAL_ENABLE_WAKE, &m_dwSysIntr, sizeof(m_dwSysIntr), NULL, 0, NULL);
}
return m_dwCapability;
};
Freescale:
//************************************************************************
DWORD CHW::SetCapability(DWORD dwCap)
//
// Purpose: This function is to check if suspend_resume is enabled, we would
// support the wakeup enable.
//
// Parameters: Nothing
//
// Returns: Nothing.
//
// Notes: This function is obsolete & not used in Freescale project as we would
// need to permanent support in non-OTG support case
//
//********************************************************************
{
m_dwCapability |= dwCap;
if ( (m_dwCapability & HCD_SUSPEND_RESUME)!=0) {
// BSPUSBInterruptControl(IOCTL_HAL_ENABLE_WAKE, &m_dwSysIntr, sizeof(m_dwSysIntr)); // By Tom for SIMCOM 3G Wake Up
KernelIoControl(IOCTL_HAL_ENABLE_WAKE, &m_dwSysIntr, sizeof(m_dwSysIntr), NULL, 0, NULL); // By Tom 原WINCE 函数
}
return m_dwCapability;
};
"HcdCapability"=dword:4
有这么说的:
Device that hosts RNDIS Host using UHCI may hang after Suspend/Resume
To avoid this problem, you must edit the uhci.reg file so that it does not support SUSPEND_RESUME. This file is located in %_WINCEROOT%\public\common\oak\drivers\usb\hcd\uhc.
Change the following text:
"HcdCapability"=dword:5 ;HCD_SUSPEND_ON_REQUEST|HCD_SUSPEND_RESUME
To
"HcdCapability"=dword:4 ;HCD_SUSPEND_ON_REQUEST
With this change, the UCHI host controller on the Windows CE-based device will unload the driver for a function device, and will reload it on resume. Therefore, for RNDIS, the RNDIS host interface is unloaded and then reloaded.
WINCE600\PUBLIC\COMMON\OAK\DRIVERS\USB\HCD\USB20\EHCI\chw.cpp
DWORD CHW::SetCapability(DWORD dwCap)
{
m_dwCapability |= dwCap;
if ( (m_dwCapability & HCD_SUSPEND_RESUME)!=0) {
KernelIoControl(IOCTL_HAL_ENABLE_WAKE, &m_dwSysIntr, sizeof(m_dwSysIntr), NULL, 0, NULL);
}
return m_dwCapability;
};
Freescale:
//************************************************************************
DWORD CHW::SetCapability(DWORD dwCap)
//
// Purpose: This function is to check if suspend_resume is enabled, we would
// support the wakeup enable.
//
// Parameters: Nothing
//
// Returns: Nothing.
//
// Notes: This function is obsolete & not used in Freescale project as we would
// need to permanent support in non-OTG support case
//
//********************************************************************
{
m_dwCapability |= dwCap;
if ( (m_dwCapability & HCD_SUSPEND_RESUME)!=0) {
// BSPUSBInterruptControl(IOCTL_HAL_ENABLE_WAKE, &m_dwSysIntr, sizeof(m_dwSysIntr)); // By Tom for SIMCOM 3G Wake Up
KernelIoControl(IOCTL_HAL_ENABLE_WAKE, &m_dwSysIntr, sizeof(m_dwSysIntr), NULL, 0, NULL); // By Tom 原WINCE 函数
}
return m_dwCapability;
};