mirror of
https://github.com/reactos/reactos.git
synced 2024-08-12 06:06:27 +00:00
[SETUPAPI]
Implement CM_Create_Range_List and CM_Free_Range_List. Still WIP. svn path=/trunk/; revision=75562
This commit is contained in:
parent
40b5e9f4f8
commit
0078433e69
|
@ -69,6 +69,22 @@ typedef struct _NOTIFY_DATA
|
||||||
#define NOTIFY_MAGIC 0x44556677
|
#define NOTIFY_MAGIC 0x44556677
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _INTERNAL_RANGE_ELEMENT
|
||||||
|
{
|
||||||
|
struct _INTERNAL_RANGE_ELEMENT *Next;
|
||||||
|
ULONG ulDummy;
|
||||||
|
} INTERNAL_RANGE_ELEMENT, *PINTERNAL_RANGE_ELEMENT;
|
||||||
|
|
||||||
|
typedef struct _INTERNAL_RANGE_LIST
|
||||||
|
{
|
||||||
|
ULONG ulMagic;
|
||||||
|
PINTERNAL_RANGE_ELEMENT Current;
|
||||||
|
PINTERNAL_RANGE_ELEMENT First;
|
||||||
|
} INTERNAL_RANGE_LIST, *PINTERNAL_RANGE_LIST;
|
||||||
|
|
||||||
|
#define RANGE_LIST_MAGIC 0x33445566
|
||||||
|
|
||||||
|
|
||||||
static BOOL GuidToString(LPGUID Guid, LPWSTR String)
|
static BOOL GuidToString(LPGUID Guid, LPWSTR String)
|
||||||
{
|
{
|
||||||
LPWSTR lpString;
|
LPWSTR lpString;
|
||||||
|
@ -910,6 +926,39 @@ CONFIGRET WINAPI CM_Create_DevNode_ExW(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* CM_Create_Range_List [SETUPAPI.@]
|
||||||
|
*/
|
||||||
|
CONFIGRET
|
||||||
|
WINAPI
|
||||||
|
CM_Create_Range_List(
|
||||||
|
_Out_ PRANGE_LIST prlh,
|
||||||
|
_In_ ULONG ulFlags)
|
||||||
|
{
|
||||||
|
PINTERNAL_RANGE_LIST pRangeList = NULL;
|
||||||
|
|
||||||
|
FIXME("CM_Create_Range_List(%p %lx)\n", prlh, ulFlags);
|
||||||
|
|
||||||
|
if (ulFlags != 0)
|
||||||
|
return CR_INVALID_FLAG;
|
||||||
|
|
||||||
|
if (prlh == NULL)
|
||||||
|
return CR_INVALID_POINTER;
|
||||||
|
|
||||||
|
pRangeList = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(INTERNAL_RANGE_LIST));
|
||||||
|
if (pRangeList == NULL)
|
||||||
|
return CR_OUT_OF_MEMORY;
|
||||||
|
|
||||||
|
pRangeList->ulMagic = RANGE_LIST_MAGIC;
|
||||||
|
|
||||||
|
// TODO: More initialization
|
||||||
|
|
||||||
|
*prlh = (RANGE_LIST)pRangeList;
|
||||||
|
|
||||||
|
return CR_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* CM_Delete_Class_Key [SETUPAPI.@]
|
* CM_Delete_Class_Key [SETUPAPI.@]
|
||||||
*/
|
*/
|
||||||
|
@ -1451,6 +1500,35 @@ CONFIGRET WINAPI CM_Free_Log_Conf_Handle(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* CM_Free_Range_List [SETUPAPI.@]
|
||||||
|
*/
|
||||||
|
CONFIGRET
|
||||||
|
WINAPI
|
||||||
|
CM_Free_Range_List(
|
||||||
|
_In_ RANGE_LIST RangeList,
|
||||||
|
_In_ ULONG ulFlags)
|
||||||
|
{
|
||||||
|
PINTERNAL_RANGE_LIST pRangeList;
|
||||||
|
|
||||||
|
FIXME("CM_Free_Range_List(%p %lx)\n", RangeList, ulFlags);
|
||||||
|
|
||||||
|
pRangeList = (PINTERNAL_RANGE_LIST)RangeList;
|
||||||
|
|
||||||
|
if (pRangeList == NULL || pRangeList->ulMagic != RANGE_LIST_MAGIC)
|
||||||
|
return CR_INVALID_RANGE_LIST;
|
||||||
|
|
||||||
|
if (ulFlags != 0)
|
||||||
|
return CR_INVALID_FLAG;
|
||||||
|
|
||||||
|
// TODO: Free the list of ranges
|
||||||
|
|
||||||
|
HeapFree(GetProcessHeap(), 0, pRangeList);
|
||||||
|
|
||||||
|
return CR_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* CM_Free_Res_Des [SETUPAPI.@]
|
* CM_Free_Res_Des [SETUPAPI.@]
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
@ stdcall CM_Create_DevNodeW(ptr wstr long long)
|
@ stdcall CM_Create_DevNodeW(ptr wstr long long)
|
||||||
@ stdcall CM_Create_DevNode_ExA(ptr str long long long)
|
@ stdcall CM_Create_DevNode_ExA(ptr str long long long)
|
||||||
@ stdcall CM_Create_DevNode_ExW(ptr wstr long long long)
|
@ stdcall CM_Create_DevNode_ExW(ptr wstr long long long)
|
||||||
@ stub CM_Create_Range_List
|
@ stdcall CM_Create_Range_List(ptr long)
|
||||||
@ stdcall CM_Delete_Class_Key(ptr long)
|
@ stdcall CM_Delete_Class_Key(ptr long)
|
||||||
@ stdcall CM_Delete_Class_Key_Ex(ptr long long)
|
@ stdcall CM_Delete_Class_Key_Ex(ptr long long)
|
||||||
@ stdcall CM_Delete_DevNode_Key(long long long)
|
@ stdcall CM_Delete_DevNode_Key(long long long)
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
@ stdcall CM_Free_Log_Conf(ptr long)
|
@ stdcall CM_Free_Log_Conf(ptr long)
|
||||||
@ stdcall CM_Free_Log_Conf_Ex(ptr long ptr)
|
@ stdcall CM_Free_Log_Conf_Ex(ptr long ptr)
|
||||||
@ stdcall CM_Free_Log_Conf_Handle(ptr)
|
@ stdcall CM_Free_Log_Conf_Handle(ptr)
|
||||||
@ stub CM_Free_Range_List
|
@ stdcall CM_Free_Range_List(ptr long)
|
||||||
@ stdcall CM_Free_Res_Des(ptr ptr long)
|
@ stdcall CM_Free_Res_Des(ptr ptr long)
|
||||||
@ stdcall CM_Free_Res_Des_Ex(ptr ptr long long)
|
@ stdcall CM_Free_Res_Des_Ex(ptr ptr long long)
|
||||||
@ stdcall CM_Free_Res_Des_Handle(ptr)
|
@ stdcall CM_Free_Res_Des_Handle(ptr)
|
||||||
|
|
Loading…
Reference in a new issue