Commit f6612adc authored by Hans Leidekker's avatar Hans Leidekker Committed by Alexandre Julliard

winedump: Print the network share name in .lnk files.

parent 3a5ddab9
......@@ -118,6 +118,15 @@ typedef struct _LOCAL_VOLUME_INFO
DWORD dwVolLabelOfs;
} LOCAL_VOLUME_INFO;
typedef struct _NETWORK_VOLUME_INFO
{
DWORD dwSize;
DWORD dwUnkown1;
DWORD dwShareNameOfs;
DWORD dwReserved;
DWORD dwUnknown2;
} NETWORK_VOLUME_INFO;
typedef struct
{
DWORD cbSize;
......@@ -232,9 +241,10 @@ static int dump_location(void)
printf("Header size = %d\n", loc->dwHeaderSize);
printf("Flags = %08x\n", loc->dwFlags);
/* dump out information about the volume the link points to */
printf("Volume ofs = %08x ", loc->dwVolTableOfs);
if (loc->dwVolTableOfs && (loc->dwVolTableOfs<loc->dwTotalSize))
/* dump information about the local volume the link points to */
printf("Local volume ofs = %08x ", loc->dwVolTableOfs);
if (loc->dwVolTableOfs &&
loc->dwVolTableOfs + sizeof(LOCAL_VOLUME_INFO) < loc->dwTotalSize)
{
const LOCAL_VOLUME_INFO *vol = (const LOCAL_VOLUME_INFO *)&p[loc->dwVolTableOfs];
......@@ -245,6 +255,19 @@ static int dump_location(void)
}
printf("\n");
/* dump information about the network volume the link points to */
printf("Network volume ofs = %08x ", loc->dwNetworkVolTableOfs);
if (loc->dwNetworkVolTableOfs &&
loc->dwNetworkVolTableOfs + sizeof(NETWORK_VOLUME_INFO) < loc->dwTotalSize)
{
const NETWORK_VOLUME_INFO *vol = (const NETWORK_VOLUME_INFO *)&p[loc->dwNetworkVolTableOfs];
printf("size %d name %d ", vol->dwSize, vol->dwShareNameOfs);
if(vol->dwShareNameOfs)
printf("(\"%s\")", &p[loc->dwNetworkVolTableOfs + vol->dwShareNameOfs]);
}
printf("\n");
/* dump out the path the link points to */
printf("LocalPath ofs = %08x ", loc->dwLocalPathOfs);
if( loc->dwLocalPathOfs && (loc->dwLocalPathOfs < loc->dwTotalSize) )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment