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 ...@@ -118,6 +118,15 @@ typedef struct _LOCAL_VOLUME_INFO
DWORD dwVolLabelOfs; DWORD dwVolLabelOfs;
} LOCAL_VOLUME_INFO; } LOCAL_VOLUME_INFO;
typedef struct _NETWORK_VOLUME_INFO
{
DWORD dwSize;
DWORD dwUnkown1;
DWORD dwShareNameOfs;
DWORD dwReserved;
DWORD dwUnknown2;
} NETWORK_VOLUME_INFO;
typedef struct typedef struct
{ {
DWORD cbSize; DWORD cbSize;
...@@ -232,9 +241,10 @@ static int dump_location(void) ...@@ -232,9 +241,10 @@ static int dump_location(void)
printf("Header size = %d\n", loc->dwHeaderSize); printf("Header size = %d\n", loc->dwHeaderSize);
printf("Flags = %08x\n", loc->dwFlags); printf("Flags = %08x\n", loc->dwFlags);
/* dump out information about the volume the link points to */ /* dump information about the local volume the link points to */
printf("Volume ofs = %08x ", loc->dwVolTableOfs); printf("Local volume ofs = %08x ", loc->dwVolTableOfs);
if (loc->dwVolTableOfs && (loc->dwVolTableOfs<loc->dwTotalSize)) if (loc->dwVolTableOfs &&
loc->dwVolTableOfs + sizeof(LOCAL_VOLUME_INFO) < loc->dwTotalSize)
{ {
const LOCAL_VOLUME_INFO *vol = (const LOCAL_VOLUME_INFO *)&p[loc->dwVolTableOfs]; const LOCAL_VOLUME_INFO *vol = (const LOCAL_VOLUME_INFO *)&p[loc->dwVolTableOfs];
...@@ -245,6 +255,19 @@ static int dump_location(void) ...@@ -245,6 +255,19 @@ static int dump_location(void)
} }
printf("\n"); 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 */ /* dump out the path the link points to */
printf("LocalPath ofs = %08x ", loc->dwLocalPathOfs); printf("LocalPath ofs = %08x ", loc->dwLocalPathOfs);
if( loc->dwLocalPathOfs && (loc->dwLocalPathOfs < loc->dwTotalSize) ) 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