DWORD ulFlags)
{
PLUGPLAY_CONTROL_DEVICE_RELATIONS_DATA PlugPlayData;
- CONFIGRET ret = CR_CALL_NOT_IMPLEMENTED;
+ CONFIGRET ret = CR_SUCCESS;
NTSTATUS Status;
DPRINT("PNP_GetDeviceList() called\n");
return CR_INVALID_POINTER;
// if (Buffer == NULL)
-// return
-
- *pulLength = 0;
+// return CR_INVALID_POINTER;
if (ulFlags &
(CM_GETIDLIST_FILTER_BUSRELATIONS |
}
else if (ulFlags & CM_GETIDLIST_FILTER_POWERRELATIONS)
{
- /* FIXME */
- PlugPlayData.Relations = 0;
+ PlugPlayData.Relations = 2;
}
else if (ulFlags & CM_GETIDLIST_FILTER_REMOVALRELATIONS)
{
PlugPlayData.Relations = 0;
}
- PlugPlayData.BufferSize = *pulLength;
+ PlugPlayData.BufferSize = *pulLength * sizeof(WCHAR);
PlugPlayData.Buffer = Buffer;
Status = NtPlugPlayControl(PlugPlayControlQueryDeviceRelations,
sizeof(PLUGPLAY_CONTROL_DEVICE_RELATIONS_DATA));
if (NT_SUCCESS(Status))
{
- *pulLength = PlugPlayData.BufferSize;
+ *pulLength = PlugPlayData.BufferSize / sizeof(WCHAR);
}
else
{
}
else if (ulFlags & CM_GETIDLIST_FILTER_SERVICE)
{
-
+ ret = CR_CALL_NOT_IMPLEMENTED;
}
else if (ulFlags & CM_GETIDLIST_FILTER_ENUMERATOR)
{
-
+ ret = CR_CALL_NOT_IMPLEMENTED;
}
else /* CM_GETIDLIST_FILTER_NONE */
{
-
+ ret = CR_CALL_NOT_IMPLEMENTED;
}
return ret;
DWORD ulFlags)
{
PLUGPLAY_CONTROL_DEVICE_RELATIONS_DATA PlugPlayData;
- CONFIGRET ret = CR_CALL_NOT_IMPLEMENTED;
+ CONFIGRET ret = CR_SUCCESS;
NTSTATUS Status;
DPRINT("PNP_GetDeviceListSize() called\n");
}
else if (ulFlags & CM_GETIDLIST_FILTER_POWERRELATIONS)
{
- /* FIXME */
- PlugPlayData.Relations = 0;
+ PlugPlayData.Relations = 2;
}
else if (ulFlags & CM_GETIDLIST_FILTER_REMOVALRELATIONS)
{
sizeof(PLUGPLAY_CONTROL_DEVICE_RELATIONS_DATA));
if (NT_SUCCESS(Status))
{
- *pulLength = PlugPlayData.BufferSize;
+ *pulLength = PlugPlayData.BufferSize / sizeof(WCHAR);
}
else
{
}
else if (ulFlags & CM_GETIDLIST_FILTER_SERVICE)
{
-
+ ret = CR_CALL_NOT_IMPLEMENTED;
}
else if (ulFlags & CM_GETIDLIST_FILTER_ENUMERATOR)
{
-
+ ret = CR_CALL_NOT_IMPLEMENTED;
}
else /* CM_GETIDLIST_FILTER_NONE */
{
-
+ ret = CR_CALL_NOT_IMPLEMENTED;
}
return ret;
done:
- if(pulTransferLen)
+ if (pulTransferLen)
*pulTransferLen = (ret == CR_SUCCESS) ? *pulLength : 0;
if (hKey != NULL)