- Implement CM_Get_Device_List_Size_ExW

svn path=/trunk/; revision=18023
This commit is contained in:
Eric Kohl 2005-09-24 09:30:43 +00:00
parent 5fa3cc8c0f
commit f9725315fe
4 changed files with 80 additions and 2 deletions

View file

@ -49,6 +49,17 @@ interface pnp
[out] unsigned long *RequiredLength,
[in] DWORD Flags);
// CONFIGRET PNP_GetDeviceList(handle_t BindingHandle,
// [in, unique, string] wchar_t *Filter,
// [out, string, size_is(*Length)] unsigned char *Buffer
// [in, out] unsigned long *Length,
// [in] DWORD Flags);
CONFIGRET PNP_GetDeviceListSize(handle_t BindingHandle,
[in, unique, string] wchar_t *Filter,
[out] unsigned long *Length,
[in] DWORD Flags);
CONFIGRET PNP_GetDepth(handle_t BindingHandle,
[in, string] wchar_t *DeviceInstance,
[out] unsigned long *Depth,

View file

@ -128,6 +128,17 @@ DECL_WINELIB_CFGMGR32_TYPE_AW(DEVINSTID)
#define CM_DELETE_CLASS_SUBKEYS 0x00000001
#define CM_DELETE_CLASS_BITS 0x00000001
/* ulFlags for CM_Get_Device_ID_List and CM_Get_Device_ID_List_Size */
#define CM_GETIDLIST_FILTER_NONE (0x00000000)
#define CM_GETIDLIST_FILTER_ENUMERATOR (0x00000001)
#define CM_GETIDLIST_FILTER_SERVICE (0x00000002)
#define CM_GETIDLIST_FILTER_EJECTRELATIONS (0x00000004)
#define CM_GETIDLIST_FILTER_REMOVALRELATIONS (0x00000008)
#define CM_GETIDLIST_FILTER_POWERRELATIONS (0x00000010)
#define CM_GETIDLIST_FILTER_BUSRELATIONS (0x00000020)
#define CM_GETIDLIST_DONOTGENERATE (0x10000040)
#define CM_GETIDLIST_FILTER_BITS (0x1000007F)
CONFIGRET WINAPI CM_Connect_MachineA( PCSTR, PHMACHINE );
CONFIGRET WINAPI CM_Connect_MachineW( PCWSTR, PHMACHINE );

View file

@ -1195,9 +1195,34 @@ CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExA(
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);
*pulLen = 2;
return CR_SUCCESS;
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);
}

View file

@ -302,6 +302,21 @@ PNP_EnumerateSubKeys(handle_t BindingHandle,
}
CONFIGRET
PNP_GetDeviceListSize(handle_t BindingHandle,
wchar_t *Filter,
unsigned long *Length,
DWORD Flags)
{
DPRINT("PNP_GetDeviceListSize() called\n");
/* FIXME */
*Length = 2;
return CR_SUCCESS;
}
CONFIGRET
PNP_GetDepth(handle_t BindingHandle,
wchar_t *DeviceInstance,
@ -634,6 +649,22 @@ PNP_GetDeviceRegProp(handle_t BindingHandle,
}
CONFIGRET
PNP_CreateKey(handle_t BindingHandle,
wchar_t *SubKey,
unsigned long samDesired,
unsigned long Flags)
{
CONFIGRET ret = CR_SUCCESS;
DPRINT("PNP_CreateKey() called\n");
DPRINT("PNP_CreateKey() done (returns %lx)\n", ret);
return ret;
}
CONFIGRET
PNP_GetClassName(handle_t BindingHandle,
wchar_t *ClassGuid,