- Make sure the device nodes use the latest device status'

svn path=/trunk/; revision=68169
This commit is contained in:
Ged Murphy 2015-06-17 08:38:34 +00:00
parent 7e9f045d24
commit d9a14b3064
2 changed files with 62 additions and 7 deletions

View file

@ -34,7 +34,7 @@ struct RefreshThreadData
{
CDeviceView *This;
BOOL ScanForChanges;
BOOL UpdateView;
BOOL UpdateView;
};

View file

@ -75,32 +75,87 @@ CNode::HasProperties()
bool
CNode::IsHidden()
{
return ((m_Status & DN_NO_SHOW_IN_DM) != 0);
CONFIGRET cr;
cr = CM_Get_DevNode_Status_Ex(&m_Status,
&m_ProblemNumber,
m_DevInst,
0,
NULL);
if (cr == CR_SUCCESS)
{
return ((m_Status & DN_NO_SHOW_IN_DM) != 0);
}
return false;
}
bool
CNode::CanDisable()
{
return (m_NodeType == NodeDevice && ((m_Status & DN_DISABLEABLE) != 0));
CONFIGRET cr;
cr = CM_Get_DevNode_Status_Ex(&m_Status,
&m_ProblemNumber,
m_DevInst,
0,
NULL);
if (cr == CR_SUCCESS)
{
return (m_NodeType == NodeDevice && ((m_Status & DN_DISABLEABLE) != 0));
}
return false;
}
bool
CNode::IsDisabled()
{
return ((m_ProblemNumber & (CM_PROB_DISABLED | CM_PROB_HARDWARE_DISABLED)) != 0);
CONFIGRET cr;
cr = CM_Get_DevNode_Status_Ex(&m_Status,
&m_ProblemNumber,
m_DevInst,
0,
NULL);
if (cr == CR_SUCCESS)
{
return ((m_ProblemNumber & (CM_PROB_DISABLED | CM_PROB_HARDWARE_DISABLED)) != 0);
}
return false;
}
bool
CNode::IsStarted()
{
return ((m_Status & DN_STARTED) != 0);
CONFIGRET cr;
cr = CM_Get_DevNode_Status_Ex(&m_Status,
&m_ProblemNumber,
m_DevInst,
0,
NULL);
if (cr == CR_SUCCESS)
{
return ((m_Status & DN_STARTED) != 0);
}
return false;
}
bool
CNode::IsInstalled()
{
return ((m_Status & DN_HAS_PROBLEM) != 0 ||
(m_Status & (DN_DRIVER_LOADED | DN_STARTED)) != 0);
CONFIGRET cr;
cr = CM_Get_DevNode_Status_Ex(&m_Status,
&m_ProblemNumber,
m_DevInst,
0,
NULL);
if (cr == CR_SUCCESS)
{
return ((m_Status & DN_HAS_PROBLEM) != 0 ||
(m_Status & (DN_DRIVER_LOADED | DN_STARTED)) != 0);
}
return false;
}