if (!PnpGetLocalHandles(&BindingHandle, NULL))
return CR_FAILURE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_InitDetection(BindingHandle);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
if (!PnpGetLocalHandles(&BindingHandle, NULL))
return CR_FAILURE;
- bAdmin = IsUserAnAdmin();
+ bAdmin = IsUserAdmin();
for (i = 0; i < 30; i++)
{
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_ReportLogOn(BindingHandle,
bAdmin,
dwProcessId);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
if (ret == CR_SUCCESS)
break;
}
+/***********************************************************************
+ * CMP_WaitServicesAvailable [SETUPAPI.@]
+ */
+CONFIGRET
+WINAPI
+CMP_WaitServicesAvailable(HMACHINE hMachine)
+{
+ RPC_BINDING_HANDLE BindingHandle = NULL;
+ CONFIGRET ret = CR_SUCCESS;
+ WORD Version;
+
+ if (!PnpGetLocalHandles(&BindingHandle, NULL))
+ return CR_FAILURE;
+
+ RpcTryExcept
+ {
+ ret = PNP_GetVersion(BindingHandle, &Version);
+ }
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
+ {
+ ret = RpcStatusToCmStatus(RpcExceptionCode());
+ }
+ RpcEndExcept;
+
+ return ret;
+}
+
+
/***********************************************************************
* CM_Add_Empty_Log_Conf [SETUPAPI.@]
*/
FIXME("%p %p %lu %lx %p\n",
plcLogConf, dnDevInst, Priority, ulFlags, hMachine);
- if (!IsUserAnAdmin())
+ if (!IsUserAdmin())
return CR_ACCESS_DENIED;
if (plcLogConf == NULL)
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_AddEmptyLogConf(BindingHandle, lpDevInst, Priority,
&ulLogConfTag, ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
if (ret == CR_SUCCESS)
{
TRACE("%p %s %lx %p\n", dnDevInst, debugstr_w(pszID), ulFlags, hMachine);
- if (!IsUserAnAdmin())
+ if (!IsUserAdmin())
return CR_ACCESS_DENIED;
if (dnDevInst == 0)
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_AddID(BindingHandle,
lpDevInst,
pszID,
ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
+/***********************************************************************
+ * CM_Add_Res_Des [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Add_Res_Des(
+ PRES_DES prdResDes, LOG_CONF lcLogConf, RESOURCEID ResourceID,
+ PCVOID ResourceData, ULONG ResourceLen, ULONG ulFlags)
+{
+ TRACE("%p %p %lu %p %lu %lx\n", prdResDes, lcLogConf, ResourceID,
+ ResourceData, ResourceLen, ulFlags);
+ return CM_Add_Res_Des_Ex(prdResDes, lcLogConf, ResourceID, ResourceData,
+ ResourceLen, ulFlags, NULL);
+}
+
+
+/***********************************************************************
+ * CM_Add_Res_Des_Ex [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Add_Res_Des_Ex(
+ PRES_DES prdResDes, LOG_CONF lcLogConf, RESOURCEID ResourceID,
+ PCVOID ResourceData, ULONG ResourceLen, ULONG ulFlags, HMACHINE hMachine)
+{
+ FIXME("%p %p %lu %p %lu %lx %p\n", prdResDes, lcLogConf, ResourceID,
+ ResourceData, ResourceLen, ulFlags, hMachine);
+
+ return CR_CALL_NOT_IMPLEMENTED;
+}
+
+
/***********************************************************************
* CM_Connect_MachineA [SETUPAPI.@]
*/
FIXME("%p %s %p %lx %p\n",
pdnDevInst, debugstr_w(pDeviceID), dnParent, ulFlags, hMachine);
- if (!IsUserAnAdmin())
+ if (!IsUserAdmin())
return CR_ACCESS_DENIED;
if (pdnDevInst == NULL)
if (lpParentDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_CreateDevInst(BindingHandle,
pDeviceID,
MAX_DEVICE_ID_LEN,
ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
if (ret == CR_SUCCESS)
{
return CR_FAILURE;
}
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_DeleteClassKey(BindingHandle,
szGuidString,
ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
FIXME("%p %lx %p\n", dnDevInst, ulFlags, hMachine);
- if (!IsUserAnAdmin())
+ if (!IsUserAdmin())
return CR_ACCESS_DENIED;
if (dnDevInst == 0)
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_DeviceInstanceAction(BindingHandle,
- 5,
+ PNP_DEVINST_DISABLE,
ulFlags,
lpDevInst,
NULL);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
LPWSTR lpDevInst;
CONFIGRET ret;
- FIXME("%p %lx %p\n", dnDevInst, ulFlags, hMachine);
+ TRACE("%p %lx %p\n", dnDevInst, ulFlags, hMachine);
- if (!IsUserAnAdmin())
+ if (!IsUserAdmin())
return CR_ACCESS_DENIED;
if (dnDevInst == 0)
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_DeviceInstanceAction(BindingHandle,
- 4,
+ PNP_DEVINST_ENABLE,
ulFlags,
lpDevInst,
NULL);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
return CR_FAILURE;
}
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_EnumerateSubKeys(BindingHandle,
PNP_CLASS_SUBKEYS,
&ulLength,
ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
if (ret == CR_SUCCESS)
{
return CR_FAILURE;
}
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_EnumerateSubKeys(BindingHandle,
PNP_ENUMERATOR_SUBKEYS,
pulLength,
ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
TRACE("%lx %lx %lx\n", lcLogConfToBeFreed, ulFlags, hMachine);
- if (!IsUserAnAdmin())
+ if (!IsUserAdmin())
return CR_ACCESS_DENIED;
pLogConfInfo = (PLOG_CONF_INFO)lcLogConfToBeFreed;
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_FreeLogConf(BindingHandle, lpDevInst, pLogConfInfo->ulFlags,
pLogConfInfo->ulTag, 0);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
}
+/***********************************************************************
+ * CM_Free_Res_Des [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Free_Res_Des(
+ PRES_DES prdResDes, RES_DES rdResDes, ULONG ulFlags)
+{
+ TRACE("%p %p %lx\n", prdResDes, rdResDes, ulFlags);
+ return CM_Free_Res_Des_Ex(prdResDes, rdResDes, ulFlags, NULL);
+}
+
+
+/***********************************************************************
+ * CM_Free_Res_Des_Ex [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Free_Res_Des_Ex(
+ PRES_DES prdResDes, RES_DES rdResDes, ULONG ulFlags,
+ HMACHINE hMachine)
+{
+ FIXME("%p %p %lx %lx\n", prdResDes, rdResDes, ulFlags, hMachine);
+
+ return CR_CALL_NOT_IMPLEMENTED;
+}
+
+
+/***********************************************************************
+ * CM_Free_Res_Des_Handle [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Free_Res_Des_Handle(
+ RES_DES rdResDes)
+{
+ FIXME("%p\n", rdResDes);
+
+ return CR_CALL_NOT_IMPLEMENTED;
+}
+
+
/***********************************************************************
* CM_Get_Child [SETUPAPI.@]
*/
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_GetRelatedDeviceInstance(BindingHandle,
PNP_GET_CHILD_DEVICE_INSTANCE,
&dwLength,
0);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
if (ret != CR_SUCCESS)
return ret;
return CR_FAILURE;
}
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_GetClassName(BindingHandle,
szGuidString,
pulLength,
ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_GetDepth(BindingHandle,
lpDevInst,
pulDepth,
ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
ulTransferLength = *pulLength;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_GetDeviceRegProp(BindingHandle,
lpDevInst,
pulLength,
ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
if (ret == CR_SUCCESS)
{
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_GetDeviceStatus(BindingHandle,
lpDevInst,
pulProblemNumber,
ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
WCHAR szBufferW[MAX_DEVICE_ID_LEN];
CONFIGRET ret = CR_SUCCESS;
- FIXME("%lx %p %ld %ld %lx\n",
+ TRACE("%lx %p %ld %ld %lx\n",
dnDevInst, Buffer, BufferLen, ulFlags, hMachine);
if (Buffer == NULL)
LPWSTR pszFilterW = NULL;
CONFIGRET ret = CR_SUCCESS;
- FIXME("%p %p %ld %ld %lx\n",
+ TRACE("%p %p %ld %ld %lx\n",
pszFilter, Buffer, BufferLen, ulFlags, hMachine);
BufferW = MyMalloc(BufferLen * sizeof(WCHAR));
PCWSTR pszFilter, PWCHAR Buffer, ULONG BufferLen, ULONG ulFlags,
HMACHINE hMachine)
{
- FIXME("%p %p %ld %ld %lx\n",
+ RPC_BINDING_HANDLE BindingHandle = NULL;
+ CONFIGRET ret;
+
+ TRACE("%p %p %ld %ld %lx\n",
pszFilter, Buffer, BufferLen, ulFlags, hMachine);
- memset(Buffer,0,2);
- return CR_SUCCESS;
+
+ if (Buffer == NULL || BufferLen == 0)
+ 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;
+ }
+
+ *Buffer = 0;
+
+ RpcTryExcept
+ {
+ ret = PNP_GetDeviceList(BindingHandle,
+ (LPWSTR)pszFilter,
+ Buffer,
+ &BufferLen,
+ ulFlags);
+ }
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
+ {
+ ret = RpcStatusToCmStatus(RpcExceptionCode());
+ }
+ RpcEndExcept;
+
+ return ret;
}
*pulLen = 0;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_GetDeviceListSize(BindingHandle,
(LPWSTR)pszFilter,
pulLen,
ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
}
+/***********************************************************************
+ * CM_Get_Device_Interface_AliasA [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Get_Device_Interface_AliasA(
+ LPCSTR pszDeviceInterface, LPGUID AliasInterfaceGuid,
+ LPSTR pszAliasDeviceInterface, PULONG pulLength, ULONG ulFlags)
+{
+ TRACE("%p %p %p %p %lu\n", pszDeviceInterface, AliasInterfaceGuid,
+ pszAliasDeviceInterface, pulLength, ulFlags);
+
+ return CM_Get_Device_Interface_Alias_ExA(pszDeviceInterface,
+ AliasInterfaceGuid, pszAliasDeviceInterface, pulLength,
+ ulFlags, NULL);
+}
+
+
+/***********************************************************************
+ * CM_Get_Device_Interface_AliasW [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Get_Device_Interface_AliasW(
+ LPCWSTR pszDeviceInterface, LPGUID AliasInterfaceGuid,
+ LPWSTR pszAliasDeviceInterface, PULONG pulLength, ULONG ulFlags)
+{
+ TRACE("%p %p %p %p %lu\n", pszDeviceInterface, AliasInterfaceGuid,
+ pszAliasDeviceInterface, pulLength, ulFlags);
+
+ return CM_Get_Device_Interface_Alias_ExW(pszDeviceInterface,
+ AliasInterfaceGuid, pszAliasDeviceInterface, pulLength,
+ ulFlags, NULL);
+}
+
+
+/***********************************************************************
+ * CM_Get_Device_Interface_Alias_ExA [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Get_Device_Interface_Alias_ExA(
+ LPCSTR pszDeviceInterface, LPGUID AliasInterfaceGuid, LPSTR pszAliasDeviceInterface,
+ PULONG pulLength, ULONG ulFlags, HMACHINE hMachine)
+{
+ FIXME("%p %p %p %p %lu %lx\n", pszDeviceInterface, AliasInterfaceGuid,
+ pszAliasDeviceInterface, pulLength, ulFlags, hMachine);
+
+ return CR_CALL_NOT_IMPLEMENTED;
+}
+
+
+/***********************************************************************
+ * CM_Get_Device_Interface_Alias_ExW [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Get_Device_Interface_Alias_ExW(
+ LPCWSTR pszDeviceInterface, LPGUID AliasInterfaceGuid, LPWSTR pszAliasDeviceInterface,
+ PULONG pulLength, ULONG ulFlags, HMACHINE hMachine)
+{
+ RPC_BINDING_HANDLE BindingHandle = NULL;
+ ULONG ulTransferLength;
+ CONFIGRET ret = CR_SUCCESS;
+
+ TRACE("%p %p %p %p %lu %lx\n", pszDeviceInterface, AliasInterfaceGuid,
+ pszAliasDeviceInterface, pulLength, ulFlags, hMachine);
+
+ if (pszDeviceInterface == NULL ||
+ AliasInterfaceGuid == NULL ||
+ pszAliasDeviceInterface == NULL ||
+ pulLength == 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;
+ }
+
+ ulTransferLength = *pulLength;
+
+ RpcTryExcept
+ {
+ ret = PNP_GetInterfaceDeviceAlias(BindingHandle,
+ (LPWSTR)pszDeviceInterface,
+ AliasInterfaceGuid,
+ pszAliasDeviceInterface,
+ pulLength,
+ &ulTransferLength,
+ 0);
+ }
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
+ {
+ ret = RpcStatusToCmStatus(RpcExceptionCode());
+ }
+ RpcEndExcept;
+
+ return ret;
+}
+
+
/***********************************************************************
* CM_Get_First_Log_Conf [SETUPAPI.@]
*/
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_GetFirstLogConf(BindingHandle,
lpDevInst,
&ulTag,
ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
if (ret != CR_SUCCESS)
return ret;
- pLogConfInfo = HeapAlloc(GetProcessHeap(), 0, sizeof(LOG_CONF_INFO));
- if (pLogConfInfo == NULL)
- return CR_OUT_OF_MEMORY;
+ if (plcLogConf)
+ {
+ 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;
+ pLogConfInfo->ulMagic = LOG_CONF_MAGIC;
+ pLogConfInfo->dnDevInst = dnDevInst;
+ pLogConfInfo->ulFlags = ulFlags;
+ pLogConfInfo->ulTag = ulTag;
- *plcLogConf = (LOG_CONF)pLogConfInfo;
+ *plcLogConf = (LOG_CONF)pLogConfInfo;
+ }
return CR_SUCCESS;
}
return CR_FAILURE;
}
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_GetGlobalState(BindingHandle, pulState, ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
return CR_FAILURE;
}
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_HwProfFlags(BindingHandle, PNP_GET_HWPROFFLAGS, szDevInstName,
ulHardwareProfile, pulValue, NULL, NULL, 0, 0);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_GetLogConfPriority(BindingHandle,
lpDevInst,
pPriority,
0);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_GetNextLogConf(BindingHandle,
lpDevInst,
&ulNewTag,
0);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
if (ret != CR_SUCCESS)
return ret;
}
+/***********************************************************************
+ * CM_Get_Next_Re_Des [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Get_Next_Res_Des(
+ PRES_DES prdResDes, RES_DES rdResDes, RESOURCEID ForResource,
+ PRESOURCEID pResourceID, ULONG ulFlags)
+{
+ TRACE("%p %p %lu %p %lx\n", prdResDes, rdResDes, ForResource,
+ pResourceID, ulFlags);
+ return CM_Get_Next_Res_Des_Ex(prdResDes, rdResDes, ForResource,
+ pResourceID, ulFlags, NULL);
+}
+
+
+/***********************************************************************
+ * CM_Get_Next_Re_Des_Ex [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Get_Next_Res_Des_Ex(
+ PRES_DES prdResDes, RES_DES rdResDes, RESOURCEID ForResource,
+ PRESOURCEID pResourceID, ULONG ulFlags, HMACHINE hMachine)
+{
+ FIXME("%p %p %lu %p %lx %lx\n", prdResDes, rdResDes, ForResource,
+ pResourceID, ulFlags, hMachine);
+
+ return CR_CALL_NOT_IMPLEMENTED;
+}
+
+
/***********************************************************************
* CM_Get_Parent [SETUPAPI.@]
*/
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_GetRelatedDeviceInstance(BindingHandle,
PNP_GET_PARENT_DEVICE_INSTANCE,
&dwLength,
0);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
if (ret != CR_SUCCESS)
return ret;
}
+/***********************************************************************
+ * CM_Get_Res_Des_Data [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Get_Res_Des_Data(
+ RES_DES rdResDes, PVOID Buffer, ULONG BufferLen, ULONG ulFlags)
+{
+ TRACE("%p %p %l %lx\n", rdResDes, Buffer, BufferLen, ulFlags);
+ return CM_Get_Res_Des_Data_Ex(rdResDes, Buffer, BufferLen, ulFlags, NULL);
+}
+
+
+/***********************************************************************
+ * CM_Get_Res_Des_Data_Ex [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Get_Res_Des_Data_Ex(
+ RES_DES rdResDes, PVOID Buffer, ULONG BufferLen, ULONG ulFlags,
+ HMACHINE hMachine)
+{
+ FIXME("%p %p %l %lx %lx\n", rdResDes, Buffer, BufferLen, ulFlags, hMachine);
+ return CR_CALL_NOT_IMPLEMENTED;
+}
+
+
+/***********************************************************************
+ * CM_Get_Res_Des_Size [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Get_Res_Des_Data_Size(
+ PULONG pulSize, RES_DES rdResDes, ULONG ulFlags)
+{
+ TRACE("%p %p %lx\n", pulSize, rdResDes, ulFlags);
+ return CM_Get_Res_Des_Data_Size_Ex(pulSize, rdResDes, ulFlags, NULL);
+}
+
+
+/***********************************************************************
+ * CM_Get_Res_Des_Size_Ex [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Get_Res_Des_Data_Size_Ex(
+ PULONG pulSize, RES_DES rdResDes, ULONG ulFlags, HMACHINE hMachine)
+{
+ TRACE("%p %p %lx %lx\n", pulSize, rdResDes, ulFlags, hMachine);
+ return CR_CALL_NOT_IMPLEMENTED;
+}
+
+
/***********************************************************************
* CM_Get_Sibling [SETUPAPI.@]
*/
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_GetRelatedDeviceInstance(BindingHandle,
PNP_GET_SIBLING_DEVICE_INSTANCE,
&dwLength,
0);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
if (ret != CR_SUCCESS)
return ret;
return CR_FAILURE;
}
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_GetVersion(BindingHandle, &Version);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
if (ret != CR_SUCCESS)
return 0;
return CR_FAILURE;
}
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_IsDockStationPresent(BindingHandle,
pbPresent);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
+/***********************************************************************
+ * CM_Is_Version_Available_Ex [SETUPAPI.@]
+ */
+BOOL WINAPI CM_Is_Version_Available(
+ WORD wVersion)
+{
+ TRACE("%hu\n", wVersion);
+ return CM_Is_Version_Available_Ex(wVersion, NULL);
+}
+
+
+/***********************************************************************
+ * CM_Is_Version_Available_Ex [SETUPAPI.@]
+ */
+BOOL WINAPI CM_Is_Version_Available_Ex(
+ WORD wVersion, HMACHINE hMachine)
+{
+ RPC_BINDING_HANDLE BindingHandle = NULL;
+ WORD wServerVersion;
+ CONFIGRET ret;
+
+ TRACE("%hu %lx\n", wVersion, hMachine);
+
+ if (wVersion <= 0x400)
+ return TRUE;
+
+ if (hMachine != NULL)
+ {
+ BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
+ if (BindingHandle == NULL)
+ return FALSE;
+ }
+ else
+ {
+ if (!PnpGetLocalHandles(&BindingHandle, NULL))
+ return FALSE;
+ }
+
+ RpcTryExcept
+ {
+ ret = PNP_GetVersion(BindingHandle, &wServerVersion);
+ }
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
+ {
+ ret = RpcStatusToCmStatus(RpcExceptionCode());
+ }
+ RpcEndExcept;
+
+ if (ret != CR_SUCCESS)
+ return FALSE;
+
+ return (wServerVersion >= wVersion);
+}
+
+
/***********************************************************************
* CM_Locate_DevNodeA [SETUPAPI.@]
*/
}
else
{
- _SEH_TRY
+ RpcTryExcept
{
/* Get the root device ID */
ret = PNP_GetRootDeviceInstance(BindingHandle,
DeviceIdBuffer,
MAX_DEVICE_ID_LEN);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
if (ret != CR_SUCCESS)
return CR_FAILURE;
}
TRACE("DeviceIdBuffer: %s\n", debugstr_w(DeviceIdBuffer));
- _SEH_TRY
+ RpcTryExcept
{
/* Validate the device ID */
ret = PNP_ValidateDeviceInstance(BindingHandle,
DeviceIdBuffer,
ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
if (ret == CR_SUCCESS)
{
}
+/***********************************************************************
+ * CM_Modify_Res_Des [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Modify_Res_Des(
+ PRES_DES prdResDes, RES_DES rdResDes, RESOURCEID ResourceID,
+ PCVOID ResourceData, ULONG ResourceLen, ULONG ulFlags)
+{
+ TRACE("%p %p %lx %p %lu %lx", prdResDes, rdResDes, ResourceID, ResourceData,
+ ResourceLen, ulFlags);
+ return CM_Modify_Res_Des_Ex(prdResDes, rdResDes, ResourceID, ResourceData,
+ ResourceLen, ulFlags, NULL);
+}
+
+
+/***********************************************************************
+ * CM_Modify_Res_Des_Ex [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Modify_Res_Des_Ex(
+ PRES_DES prdResDes, RES_DES rdResDes, RESOURCEID ResourceID, PCVOID ResourceData,
+ ULONG ResourceLen, ULONG ulFlags, HMACHINE hMachine)
+{
+ FIXME("%p %p %lx %p %lu %lx %lx", prdResDes, rdResDes, ResourceID, ResourceData,
+ ResourceLen, ulFlags, hMachine);
+ return CR_CALL_NOT_IMPLEMENTED;
+}
+
+
/***********************************************************************
* CM_Move_DevNode [SETUPAPI.@]
*/
FIXME("%lx %lx %lx %lx\n",
dnFromDevInst, dnToDevInst, ulFlags, hMachine);
- if (!IsUserAnAdmin())
+ if (!IsUserAdmin())
return CR_ACCESS_DENIED;
if (dnFromDevInst == 0 || dnToDevInst == 0)
if (lpToDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_DeviceInstanceAction(BindingHandle,
- 2,
+ PNP_DEVINST_MOVE,
ulFlags,
lpFromDevInst,
lpToDevInst);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
}
+/***********************************************************************
+ * CM_Query_Remove_SubTree [SETUPAPI.@]
+ *
+ * This function is obsolete in Windows XP and above.
+ */
+CONFIGRET WINAPI CM_Query_Remove_SubTree(
+ DEVINST dnAncestor, ULONG ulFlags)
+{
+ TRACE("%lx %lx\n", dnAncestor, ulFlags);
+ return CR_CALL_NOT_IMPLEMENTED;
+}
+
+
+/***********************************************************************
+ * CM_Query_Remove_SubTree_Ex [SETUPAPI.@]
+ *
+ * This function is obsolete in Windows XP and above.
+ */
+CONFIGRET WINAPI CM_Query_Remove_SubTree_Ex(
+ DEVINST dnAncestor, ULONG ulFlags, HMACHINE hMachine)
+{
+ TRACE("%lx %lx %lx\n", dnAncestor, ulFlags, hMachine);
+ return CR_CALL_NOT_IMPLEMENTED;
+}
+
+
/***********************************************************************
* CM_Reenumerate_DevNode [SETUPAPI.@]
*/
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_DeviceInstanceAction(BindingHandle,
- 7,
+ PNP_DEVINST_REENUMERATE,
ulFlags,
lpDevInst,
NULL);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
+/***********************************************************************
+ * CM_Remove_SubTree [SETUPAPI.@]
+ *
+ * This function is obsolete in Windows XP and above.
+ */
+CONFIGRET WINAPI CM_Remove_SubTree(
+ DEVINST dnAncestor, ULONG ulFlags)
+{
+ TRACE("%lx %lx\n", dnAncestor, ulFlags);
+ return CR_CALL_NOT_IMPLEMENTED;
+}
+
+
+/***********************************************************************
+ * CM_Remove_SubTree_Ex [SETUPAPI.@]
+ *
+ * This function is obsolete in Windows XP and above.
+ */
+CONFIGRET WINAPI CM_Remove_SubTree_Ex(
+ DEVINST dnAncestor, ULONG ulFlags, HMACHINE hMachine)
+{
+ TRACE("%lx %lx %lx\n", dnAncestor, ulFlags, hMachine);
+ return CR_CALL_NOT_IMPLEMENTED;
+}
+
+
/***********************************************************************
* CM_Request_Eject_PC [SETUPAPI.@]
*/
return CR_FAILURE;
}
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_RequestEjectPC(BindingHandle);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
TRACE("%lx %lx\n", ulFlags, hMachine);
- if (!IsUserAnAdmin())
+ if (!IsUserAdmin())
return CR_ACCESS_DENIED;
if (ulFlags & ~CM_DETECT_BITS)
return CR_FAILURE;
}
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_RunDetection(BindingHandle,
ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_SetDeviceProblem(BindingHandle,
lpDevInst,
ulProblem,
ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
return CR_INVALID_PROPERTY;
}
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_SetDeviceRegProp(BindingHandle,
lpDevInst,
ulLength,
ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
+ {
+ ret = RpcStatusToCmStatus(RpcExceptionCode());
+ }
+ RpcEndExcept;
+
+ return ret;
+}
+
+
+/***********************************************************************
+ * CM_Set_HW_Prof [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Set_HW_Prof(
+ ULONG ulHardwareProfile, ULONG ulFlags)
+{
+ TRACE("%lu %lu\n", ulHardwareProfile, ulFlags);
+ return CM_Set_HW_Prof_Ex(ulHardwareProfile, ulFlags, NULL);
+}
+
+
+/***********************************************************************
+ * CM_Set_HW_Prof_Ex [SETUPAPI.@]
+ */
+CONFIGRET WINAPI CM_Set_HW_Prof_Ex(
+ ULONG ulHardwareProfile, ULONG ulFlags, HMACHINE hMachine)
+{
+ RPC_BINDING_HANDLE BindingHandle = NULL;
+ CONFIGRET ret;
+
+ TRACE("%lu %lu %lx\n", ulHardwareProfile, ulFlags, hMachine);
+
+ if (!IsUserAdmin())
+ return CR_ACCESS_DENIED;
+
+ 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;
+ }
+
+ RpcTryExcept
+ {
+ ret = PNP_SetHwProf(BindingHandle, ulHardwareProfile, ulFlags);
+ }
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
return CR_FAILURE;
}
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_HwProfFlags(BindingHandle, PNP_SET_HWPROFFLAGS, szDevInstName,
ulConfig, &ulValue, NULL, NULL, 0, 0);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
FIXME("%lx %lx %lx\n", dnDevInst, ulFlags, hMachine);
- if (!IsUserAnAdmin())
+ if (!IsUserAdmin())
return CR_ACCESS_DENIED;
if (dnDevInst == 0)
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_DeviceInstanceAction(BindingHandle,
- 3,
+ PNP_DEVINST_SETUP,
ulFlags,
lpDevInst,
NULL);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}
if (lpDevInst == NULL)
return CR_INVALID_DEVNODE;
- _SEH_TRY
+ RpcTryExcept
{
ret = PNP_UninstallDevInst(BindingHandle,
lpDevInst,
ulFlags);
}
- _SEH_HANDLE
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
- _SEH_END;
+ RpcEndExcept;
return ret;
}