[NETSH][REACTOS] Improve MatchTagsInCmdLine and add NsGetIfNameFromFriendlyName stubs.c

These functions are used by the WinXP ifmon.dll when the 'interface ip set address' command is used.
This commit is contained in:
Eric Kohl
2026-05-14 15:19:21 +02:00
parent 713888355b
commit 4bb73fe3c9
3 changed files with 47 additions and 8 deletions

View File

@@ -380,20 +380,38 @@ MatchTagsInCmdLine(
_In_ DWORD dwTagCount,
_Out_ DWORD *pdwTagType)
{
DWORD i;
PWSTR pszEqual;
DWORD i, j, dwTagLength;
DPRINT1("MatchTagsInCmdLine(%p %p %lu %lu %p %lu %p) stub!\n",
DPRINT1("MatchTagsInCmdLine(%p %p %lu %lu %p %lu %p)\n",
hModule, ppwcArguments, dwCurrentIndex, dwArgCount,
pttTags, dwTagCount, pdwTagType);
for (i = dwCurrentIndex; i < dwArgCount; i++)
{
DPRINT1("Argument %lu: %S\n", i, ppwcArguments[i]);
}
DPRINT("Argument %lu: %S\n", i, ppwcArguments[i]);
for (i = 0; i < dwTagCount; i++)
{
DPRINT1("Tag %lu: %S\n", i, pttTags[i].pwszTag);
/* Skip arguments that do not have a tag */
pszEqual = wcschr(ppwcArguments[i], L'=');
if (pszEqual == NULL)
continue;
dwTagLength = pszEqual - ppwcArguments[i];
DPRINT("Tag length %lu\n", dwTagLength);
DPRINT("Value length %lu\n", wcslen(pszEqual + 1));
pdwTagType[i - dwCurrentIndex] = (DWORD)-1;
for (j = 0; j < dwTagCount; j++)
{
DPRINT("Test tag %S\n", pttTags[j].pwszTag);
if ((wcslen(pttTags[i].pwszTag) == dwTagLength) &&
(_wcsnicmp(ppwcArguments[i], pttTags[j].pwszTag, dwTagLength) == 0))
{
DPRINT("Found tag %S\n", pttTags[j].pwszTag);
pttTags[j].bPresent = TRUE;
pdwTagType[i - dwCurrentIndex] = j;
}
}
}
return 0;
@@ -450,6 +468,19 @@ NsGetFriendlyNameFromIfName(
return ret;
}
DWORD
WINAPI
NsGetIfNameFromFriendlyName(
_In_ DWORD dwUnknown1,
_In_ PWSTR pszFriendlyName,
_Inout_ PWSTR pszIfName,
_Inout_ PDWORD pdwIfName)
{
DPRINT1("NsGetIfNameFromFriendlyName(%lx %S %p %p)\n",
dwUnknown1, pszFriendlyName, pszIfName, pdwIfName);
return 0;
}
DWORD
WINAPI
PreprocessCommand(

View File

@@ -15,7 +15,7 @@
@ stdcall MatchTagsInCmdLine(ptr ptr long long ptr long ptr)
@ stdcall MatchToken(wstr wstr)
@ stdcall NsGetFriendlyNameFromIfName(long wstr ptr ptr)
@ stub NsGetIfNameFromFriendlyName
@ stdcall NsGetIfNameFromFriendlyName(long wstr ptr ptr)
@ stdcall PreprocessCommand(ptr ptr long long ptr long long long ptr)
@ varargs PrintError(ptr long)
@ stub PrintErrorLog

View File

@@ -42,4 +42,12 @@ NsGetFriendlyNameFromIfName(
_Inout_ PWSTR pszFriendlyName,
_Inout_ PDWORD pdwFriendlyName);
DWORD
WINAPI
NsGetIfNameFromFriendlyName(
_In_ DWORD dwUnknown1,
_In_ PWSTR pszFriendlyName,
_Inout_ PWSTR pszIfName,
_Inout_ PDWORD pdwIfName);
#endif /* __NETSH_UNDOC_H__ */