📄 cfgmgr.c
字号:
MyFree(BufferW);
return ret;
}
/***********************************************************************
* CM_Get_Device_ID_List_ExW [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_Device_ID_List_ExW(
PCWSTR pszFilter, PWCHAR Buffer, ULONG BufferLen, ULONG ulFlags,
HMACHINE hMachine)
{
FIXME("%p %p %ld %ld %lx\n",
pszFilter, Buffer, BufferLen, ulFlags, hMachine);
memset(Buffer,0,2);
return CR_SUCCESS;
}
/***********************************************************************
* CM_Get_Device_ID_List_SizeA [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_Device_ID_List_SizeA(
PULONG pulLen, PCSTR pszFilter, ULONG ulFlags)
{
TRACE("%p %s %ld\n", pulLen, pszFilter, ulFlags);
return CM_Get_Device_ID_List_Size_ExA(pulLen, pszFilter, ulFlags, NULL);
}
/***********************************************************************
* CM_Get_Device_ID_List_SizeW [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_Device_ID_List_SizeW(
PULONG pulLen, PCWSTR pszFilter, ULONG ulFlags)
{
TRACE("%p %s %ld\n", pulLen, debugstr_w(pszFilter), ulFlags);
return CM_Get_Device_ID_List_Size_ExW(pulLen, pszFilter, ulFlags, NULL);
}
/***********************************************************************
* CM_Get_Device_ID_List_Size_ExA [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExA(
PULONG pulLen, PCSTR pszFilter, ULONG ulFlags, HMACHINE hMachine)
{
LPWSTR pszFilterW = NULL;
CONFIGRET ret = CR_SUCCESS;
FIXME("%p %s %lx %lx\n", pulLen, pszFilter, ulFlags, hMachine);
if (pszFilter == NULL)
{
ret = CM_Get_Device_ID_List_Size_ExW(pulLen,
NULL,
ulFlags,
hMachine);
}
else
{
if (CaptureAndConvertAnsiArg(pszFilter, &pszFilterW))
return CR_INVALID_DEVICE_ID;
ret = CM_Get_Device_ID_List_Size_ExW(pulLen,
pszFilterW,
ulFlags,
hMachine);
MyFree(pszFilterW);
}
return ret;
}
/***********************************************************************
* CM_Get_Device_ID_List_Size_ExW [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExW(
PULONG pulLen, PCWSTR pszFilter, ULONG ulFlags, HMACHINE hMachine)
{
RPC_BINDING_HANDLE BindingHandle = NULL;
FIXME("%p %s %ld %lx\n", pulLen, debugstr_w(pszFilter), ulFlags, hMachine);
if (pulLen == NULL)
return CR_INVALID_POINTER;
if (ulFlags & ~CM_GETIDLIST_FILTER_BITS)
return CR_INVALID_FLAG;
if (hMachine != NULL)
{
BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
if (BindingHandle == NULL)
return CR_FAILURE;
}
else
{
if (!PnpGetLocalHandles(&BindingHandle, NULL))
return CR_FAILURE;
}
*pulLen = 0;
return PNP_GetDeviceListSize(BindingHandle,
(LPWSTR)pszFilter,
pulLen,
ulFlags);
}
/***********************************************************************
* CM_Get_Device_ID_Size [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_Device_ID_Size(
PULONG pulLen, DEVINST dnDevInst, ULONG ulFlags)
{
TRACE("%p %lx %lx\n", pulLen, dnDevInst, ulFlags);
return CM_Get_Device_ID_Size_Ex(pulLen, dnDevInst, ulFlags, NULL);
}
/***********************************************************************
* CM_Get_Device_ID_Size_Ex [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_Device_ID_Size_Ex(
PULONG pulLen, DEVINST dnDevInst, ULONG ulFlags, HMACHINE hMachine)
{
HSTRING_TABLE StringTable = NULL;
LPWSTR DeviceId;
TRACE("%p %lx %lx %lx\n", pulLen, dnDevInst, ulFlags, hMachine);
if (pulLen == NULL)
return CR_INVALID_POINTER;
if (dnDevInst == 0)
return CR_INVALID_DEVINST;
if (ulFlags != 0)
return CR_INVALID_FLAG;
if (hMachine != NULL)
{
StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
if (StringTable == NULL)
return CR_FAILURE;
}
else
{
if (!PnpGetLocalHandles(NULL, &StringTable))
return CR_FAILURE;
}
DeviceId = StringTableStringFromId(StringTable, dnDevInst);
if (DeviceId == NULL)
{
*pulLen = 0;
return CR_SUCCESS;
}
*pulLen = lstrlenW(DeviceId);
return CR_SUCCESS;
}
/***********************************************************************
* CM_Get_First_Log_Conf [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_First_Log_Conf(
PLOG_CONF plcLogConf, DEVINST dnDevInst, ULONG ulFlags)
{
TRACE("%p %lx %lx\n", plcLogConf, dnDevInst, ulFlags);
return CM_Get_First_Log_Conf_Ex(plcLogConf, dnDevInst, ulFlags, NULL);
}
/***********************************************************************
* CM_Get_First_Log_Conf_Ex [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_First_Log_Conf_Ex(
PLOG_CONF plcLogConf, DEVINST dnDevInst, ULONG ulFlags, HMACHINE hMachine)
{
RPC_BINDING_HANDLE BindingHandle = NULL;
HSTRING_TABLE StringTable = NULL;
LPWSTR lpDevInst = NULL;
CONFIGRET ret = CR_SUCCESS;
ULONG ulTag;
PLOG_CONF_INFO pLogConfInfo;
FIXME("%p %lx %lx %lx\n", plcLogConf, dnDevInst, ulFlags, hMachine);
if (dnDevInst == 0)
return CR_INVALID_DEVINST;
if (ulFlags & ~LOG_CONF_BITS)
return CR_INVALID_FLAG;
if (plcLogConf)
*plcLogConf = 0;
if (hMachine != NULL)
{
BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
if (BindingHandle == NULL)
return CR_FAILURE;
StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
if (StringTable == 0)
return CR_FAILURE;
}
else
{
if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
return CR_FAILURE;
}
lpDevInst = StringTableStringFromId(StringTable, dnDevInst);
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
ret = PNP_GetFirstLogConf(BindingHandle,
lpDevInst,
ulFlags,
&ulTag,
ulFlags);
if (ret != CR_SUCCESS)
return ret;
pLogConfInfo = HeapAlloc(GetProcessHeap(), 0, sizeof(LOG_CONF_INFO));
if (pLogConfInfo == NULL)
return CR_OUT_OF_MEMORY;
pLogConfInfo->ulMagic = LOG_CONF_MAGIC;
pLogConfInfo->dnDevInst = dnDevInst;
pLogConfInfo->ulFlags = ulFlags;
pLogConfInfo->ulTag = ulTag;
*plcLogConf = (LOG_CONF)pLogConfInfo;
return CR_SUCCESS;
}
/***********************************************************************
* CM_Get_Global_State [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_Global_State(
PULONG pulState, ULONG ulFlags)
{
TRACE("%p %lx\n", pulState, ulFlags);
return CM_Get_Global_State_Ex(pulState, ulFlags, NULL);
}
/***********************************************************************
* CM_Get_Global_State_Ex [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_Global_State_Ex(
PULONG pulState, ULONG ulFlags, HMACHINE hMachine)
{
RPC_BINDING_HANDLE BindingHandle = NULL;
TRACE("%p %lx %lx\n", pulState, ulFlags, hMachine);
if (pulState == NULL)
return CR_INVALID_POINTER;
if (ulFlags != 0)
return CR_INVALID_FLAG;
if (hMachine != NULL)
{
BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
if (BindingHandle == NULL)
return CR_FAILURE;
}
else
{
if (!PnpGetLocalHandles(&BindingHandle, NULL))
return CR_FAILURE;
}
return PNP_GetGlobalState(BindingHandle, pulState, ulFlags);
}
/***********************************************************************
* CM_Get_HW_Prof_FlagsA [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_HW_Prof_FlagsA(
DEVINSTID_A szDevInstName, ULONG ulHardwareProfile, PULONG pulValue,
ULONG ulFlags)
{
TRACE("%s %lu %p %lx\n", szDevInstName,
ulHardwareProfile, pulValue, ulFlags);
return CM_Get_HW_Prof_Flags_ExA(szDevInstName, ulHardwareProfile,
pulValue, ulFlags, NULL);
}
/***********************************************************************
* CM_Get_HW_Prof_FlagsW [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_HW_Prof_FlagsW(
DEVINSTID_W szDevInstName, ULONG ulHardwareProfile, PULONG pulValue,
ULONG ulFlags)
{
TRACE("%s %lu %p %lx\n", debugstr_w(szDevInstName),
ulHardwareProfile, pulValue, ulFlags);
return CM_Get_HW_Prof_Flags_ExW(szDevInstName, ulHardwareProfile,
pulValue, ulFlags, NULL);
}
/***********************************************************************
* CM_Get_HW_Prof_Flags_ExA [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_HW_Prof_Flags_ExA(
DEVINSTID_A szDevInstName, ULONG ulHardwareProfile, PULONG pulValue,
ULONG ulFlags, HMACHINE hMachine)
{
DEVINSTID_W pszDevIdW = NULL;
CONFIGRET ret = CR_SUCCESS;
TRACE("%s %lu %p %lx %lx\n", szDevInstName,
ulHardwareProfile, pulValue, ulFlags, hMachine);
if (szDevInstName != NULL)
{
if (CaptureAndConvertAnsiArg(szDevInstName, &pszDevIdW))
return CR_INVALID_DEVICE_ID;
}
ret = CM_Get_HW_Prof_Flags_ExW(pszDevIdW, ulHardwareProfile,
pulValue, ulFlags, hMachine);
if (pszDevIdW != NULL)
MyFree(pszDevIdW);
return ret;
}
/***********************************************************************
* CM_Get_HW_Prof_Flags_ExW [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_HW_Prof_Flags_ExW(
DEVINSTID_W szDevInstName, ULONG ulHardwareProfile, PULONG pulValue,
ULONG ulFlags, HMACHINE hMachine)
{
RPC_BINDING_HANDLE BindingHandle = NULL;
FIXME("%s %lu %p %lx %lx\n", debugstr_w(szDevInstName),
ulHardwareProfile, pulValue, ulFlags, hMachine);
if ((szDevInstName == NULL) || (pulValue == NULL))
return CR_INVALID_POINTER;
if (ulFlags != 0)
return CR_INVALID_FLAG;
/* FIXME: Check whether szDevInstName is valid */
if (hMachine != NULL)
{
BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
if (BindingHandle == NULL)
return CR_FAILURE;
}
else
{
if (!PnpGetLocalHandles(&BindingHandle, NULL))
return CR_FAILURE;
}
return PNP_HwProfFlags(BindingHandle, PNP_GET_HW_PROFILE_FLAGS, szDevInstName,
ulHardwareProfile, pulValue, 0);
}
/***********************************************************************
* CM_Get_Log_Conf_Priority [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_Log_Conf_Priority(
LOG_CONF lcLogConf, PPRIORITY pPriority, ULONG ulFlags)
{
TRACE("%p %p %lx\n", lcLogConf, pPriority, ulFlags);
return CM_Get_Log_Conf_Priority_Ex(lcLogConf, pPriority, ulFlags, NULL);
}
/***********************************************************************
* CM_Get_Log_Conf_Priority_Ex [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_Log_Conf_Priority_Ex(
LOG_CONF lcLogConf, PPRIORITY pPriority, ULONG ulFlags,
HMACHINE hMachine)
{
RPC_BINDING_HANDLE BindingHandle = NULL;
HSTRING_TABLE StringTable = NULL;
PLOG_CONF_INFO pLogConfInfo;
LPWSTR lpDevInst;
FIXME("%p %p %lx %lx\n", lcLogConf, pPriority, ulFlags, hMachine);
pLogConfInfo = (PLOG_CONF_INFO)lcLogConf;
if (pLogConfInfo == NULL || pLogConfInfo->ulMagic != LOG_CONF_MAGIC)
return CR_INVALID_LOG_CONF;
if (pPriority == NULL)
return CR_INVALID_POINTER;
if (ulFlags != 0)
return CR_INVALID_FLAG;
if (hMachine != NULL)
{
BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
if (BindingHandle == NULL)
return CR_FAILURE;
StringTable = ((PMACHINE_INFO)hMachine)->StringTable;
if (StringTable == 0)
return CR_FAILURE;
}
else
{
if (!PnpGetLocalHandles(&BindingHandle, &StringTable))
return CR_FAILURE;
}
lpDevInst = StringTableStringFromId(StringTable, pLogConfInfo->dnDevInst);
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
return PNP_GetLogConfPriority(BindingHandle,
lpDevInst,
pLogConfInfo->ulFlags,
pLogConfI
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -