1
0
mirror of https://github.com/winfsp/winfsp.git synced 2025-12-13 23:59:15 -06:00

dll: FspFsctlEnumServices

This commit is contained in:
Bill Zissimopoulos
2022-09-10 16:23:14 +01:00
parent b99fb9a5cb
commit 2fc2c237d3
6 changed files with 157 additions and 7 deletions

View File

@@ -65,6 +65,7 @@ static void usage(void)
" lsvol list file system devices (volumes)\n"
" id [NAME|SID|UID] print user id\n"
" perm [PATH|SDDL|UID:GID:MODE] print permissions\n"
" lsdrv list drivers\n"
" unload unload driver (requires load driver priv)\n",
PROGNAME);
}
@@ -564,6 +565,25 @@ static int perm(int argc, wchar_t **argv)
return FspWin32FromNtStatus(Result);
}
static VOID lsdrv_enumfn(PVOID Context, PWSTR ServiceName, BOOLEAN Running)
{
info("%-4s%S", Running ? "R" : "-", ServiceName);
}
static int lsdrv(int argc, wchar_t **argv)
{
if (1 != argc)
usage();
NTSTATUS Result;
Result = FspFsctlEnumServices(lsdrv_enumfn, 0);
if (!NT_SUCCESS(Result))
return FspWin32FromNtStatus(Result);
return 0;
}
static int unload(int argc, wchar_t **argv)
{
if (1 != argc)
@@ -598,6 +618,9 @@ int wmain(int argc, wchar_t **argv)
if (0 == invariant_wcscmp(L"perm", argv[0]))
return perm(argc, argv);
else
if (0 == invariant_wcscmp(L"lsdrv", argv[0]))
return lsdrv(argc, argv);
else
if (0 == invariant_wcscmp(L"unload", argv[0]))
return unload(argc, argv);
else