- Implement CM_Enumerate_Enumerators_ExA. - Fix a typo in PNP_EnumerateSubKeys. Modified: trunk/reactos/lib/setupapi/cfgmgr.c Modified: trunk/reactos/services/umpnpmgr/umpnpmgr.c _____
Modified: trunk/reactos/lib/setupapi/cfgmgr.c --- trunk/reactos/lib/setupapi/cfgmgr.c 2005-09-10 23:50:28 UTC (rev 17791) +++ trunk/reactos/lib/setupapi/cfgmgr.c 2005-09-11 08:45:02 UTC (rev 17792) @@ -344,9 +344,42 @@
ULONG ulEnumIndex, PCHAR Buffer, PULONG pulLength, ULONG ulFlags, HMACHINE hMachine) { - FIXME("%lu %p %p %lx %lx\n", ulEnumIndex, Buffer, pulLength, ulFlags, + WCHAR szBuffer[MAX_DEVICE_ID_LEN]; + ULONG ulOrigLength; + ULONG ulLength; + CONFIGRET ret = CR_SUCCESS; + + TRACE("%lu %p %p %lx %lx\n", ulEnumIndex, Buffer, pulLength, ulFlags, hMachine); - return CR_CALL_NOT_IMPLEMENTED; + + if (Buffer == NULL || pulLength == NULL) + return CR_INVALID_POINTER; + + if (ulFlags != 0) + return CR_INVALID_FLAG; + + ulOrigLength = *pulLength; + *pulLength = 0; + + ulLength = MAX_DEVICE_ID_LEN; + ret = CM_Enumerate_Enumerators_ExW(ulEnumIndex, szBuffer, &ulLength, + ulFlags, hMachine); + if (ret == CR_SUCCESS) + { + if (WideCharToMultiByte(CP_ACP, + 0, + szBuffer, + ulLength, + Buffer, + ulOrigLength, + NULL, + NULL) == 0) + ret = CR_FAILURE; + else + *pulLength = lstrlenA(Buffer) + 1; + } + + return ret; }
@@ -359,7 +392,7 @@ { RPC_BINDING_HANDLE BindingHandle = NULL;
- FIXME("%lu %p %p %lx %lx\n", ulEnumIndex, Buffer, pulLength, ulFlags, + TRACE("%lu %p %p %lx %lx\n", ulEnumIndex, Buffer, pulLength, ulFlags, hMachine);
if (Buffer == NULL || pulLength == NULL) @@ -368,7 +401,7 @@ if (ulFlags != 0) return CR_INVALID_FLAG;
- Buffer[0] = (WCHAR)0; + *Buffer = UNICODE_NULL;
if (hMachine != NULL) { _____
Modified: trunk/reactos/services/umpnpmgr/umpnpmgr.c --- trunk/reactos/services/umpnpmgr/umpnpmgr.c 2005-09-10 23:50:28 UTC (rev 17791) +++ trunk/reactos/services/umpnpmgr/umpnpmgr.c 2005-09-11 08:45:02 UTC (rev 17792) @@ -293,7 +293,7 @@
} else { - *RequiredLength++; + (*RequiredLength)++; }
DPRINT("PNP_EnumerateSubKeys() done (returns %lx)\n", ret);