mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +00:00
Simple utility to list the so called "DOS Devices", that is
symbolic links in the \?? directory of the Ob name space. svn path=/trunk/; revision=1285
This commit is contained in:
parent
66d2f292ef
commit
65ecb0b98b
1 changed files with 117 additions and 0 deletions
117
rosapps/sysutils/ldd.c
Normal file
117
rosapps/sysutils/ldd.c
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
/* $Id: ldd.c,v 1.1 2000/08/04 21:49:31 ea Exp $
|
||||||
|
*
|
||||||
|
* FILE : ldd.c
|
||||||
|
* AUTHOR: Emanuele ALIBERTI
|
||||||
|
* DATE : 2000-08-04
|
||||||
|
* DESC : List DOS devices, i.e. symbolic links created
|
||||||
|
* in the \?? object manager's name space.
|
||||||
|
*/
|
||||||
|
#include <windows.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include "win32err.h"
|
||||||
|
|
||||||
|
#define LINKS_SIZE 32768
|
||||||
|
#define DEVICE_SIZE 8192
|
||||||
|
|
||||||
|
static char SymbolicLinks [LINKS_SIZE];
|
||||||
|
static char DosDeviceName [DEVICE_SIZE];
|
||||||
|
|
||||||
|
static char DeviceNames [DEVICE_SIZE];
|
||||||
|
static char DeviceName [DEVICE_SIZE];
|
||||||
|
|
||||||
|
|
||||||
|
BOOL
|
||||||
|
STDCALL
|
||||||
|
GetNextString (
|
||||||
|
char * BufferIn,
|
||||||
|
char * BufferOut,
|
||||||
|
char ** Next
|
||||||
|
)
|
||||||
|
{
|
||||||
|
char * next = *Next;
|
||||||
|
char * w;
|
||||||
|
|
||||||
|
if ('\0' == *next) return FALSE;
|
||||||
|
for ( w = BufferOut;
|
||||||
|
('\0' != *next);
|
||||||
|
next ++
|
||||||
|
)
|
||||||
|
{
|
||||||
|
*(w ++) = *next;
|
||||||
|
}
|
||||||
|
*w = '\0';
|
||||||
|
*Next = ++ next;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
main (int argc, char * argv [] )
|
||||||
|
{
|
||||||
|
printf (
|
||||||
|
"ReactOS W32 - List DOS Devices\n"
|
||||||
|
"Written by E.Aliberti (%s)\n\n",
|
||||||
|
__DATE__
|
||||||
|
);
|
||||||
|
|
||||||
|
if (0 != QueryDosDevice (
|
||||||
|
NULL, /* dump full directory */
|
||||||
|
SymbolicLinks,
|
||||||
|
sizeof SymbolicLinks
|
||||||
|
)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
char * NextDosDevice = SymbolicLinks;
|
||||||
|
char * NextDevice;
|
||||||
|
|
||||||
|
while (TRUE == GetNextString (
|
||||||
|
SymbolicLinks,
|
||||||
|
DosDeviceName,
|
||||||
|
& NextDosDevice
|
||||||
|
)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
printf ("%s\n", DosDeviceName);
|
||||||
|
if (0 != QueryDosDevice (
|
||||||
|
DosDeviceName,
|
||||||
|
DeviceNames,
|
||||||
|
sizeof DeviceNames
|
||||||
|
)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
NextDevice = DeviceNames;
|
||||||
|
while (TRUE == GetNextString (
|
||||||
|
DeviceNames,
|
||||||
|
DeviceName,
|
||||||
|
& NextDevice
|
||||||
|
)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
printf (" %s\n", DeviceName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PrintWin32Error (
|
||||||
|
L"ldd: ",
|
||||||
|
GetLastError ()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
printf ("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PrintWin32Error (
|
||||||
|
L"ldd: ",
|
||||||
|
GetLastError ()
|
||||||
|
);
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* EOF */
|
Loading…
Reference in a new issue