<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[RearsePoint]]></title><description><![CDATA[<p>Wie kann das Zielverzeichnis eines Reparse_Point ermittelt werden ?</p>
<p>Bis jetzt habe ich folgenden Code zusammen gesetzt:</p>
<pre><code class="language-cpp">#include &lt;winIOCtl.h&gt; //DeviceIoControl

HANDLE hFile; 

char szOut[4]; 
char *pOut; 

unsigned long int* lpByte; 

const char* MyFile = &quot;C:\\Programme&quot;; 

hFile = CreateFile(MyFile, GENERIC_READ, 0, NULL, 
        OPEN_EXISTING, 0, NULL); 

CloseHandle(hFile); 

DeviceIoControl(hFile, FSCTL_GET_REPARSE_POINT, NULL, NULL, pOut, 
                        sizeof(szOut), lpByte, NULL); 

Form1-&gt;Caption = szOut;
</code></pre>
<p>Ich bekomme aber kein Zielverzeichnis Zurück.</p>
<pre><code class="language-cpp">_REPARSE_GUID_DATA_BUFFER* buffer;

DeviceIoControl(hFile, FSCTL_GET_REPARSE_POINT, buffer, NULL, pOut,
                        sizeof(buffer), lpByte, NULL);

Form1-&gt;Caption = buffer-&gt;ReparseTag;
</code></pre>
<p>Funktioniert auch nicht.</p>
<p>Kennt sich jemand damit aus ???</p>
<p>==&gt;Eisbeer&lt;==</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/206238/rearsepoint</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 18:05:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/206238.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 22 Feb 2008 13:44:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to RearsePoint on Fri, 22 Feb 2008 13:44:35 GMT]]></title><description><![CDATA[<p>Wie kann das Zielverzeichnis eines Reparse_Point ermittelt werden ?</p>
<p>Bis jetzt habe ich folgenden Code zusammen gesetzt:</p>
<pre><code class="language-cpp">#include &lt;winIOCtl.h&gt; //DeviceIoControl

HANDLE hFile; 

char szOut[4]; 
char *pOut; 

unsigned long int* lpByte; 

const char* MyFile = &quot;C:\\Programme&quot;; 

hFile = CreateFile(MyFile, GENERIC_READ, 0, NULL, 
        OPEN_EXISTING, 0, NULL); 

CloseHandle(hFile); 

DeviceIoControl(hFile, FSCTL_GET_REPARSE_POINT, NULL, NULL, pOut, 
                        sizeof(szOut), lpByte, NULL); 

Form1-&gt;Caption = szOut;
</code></pre>
<p>Ich bekomme aber kein Zielverzeichnis Zurück.</p>
<pre><code class="language-cpp">_REPARSE_GUID_DATA_BUFFER* buffer;

DeviceIoControl(hFile, FSCTL_GET_REPARSE_POINT, buffer, NULL, pOut,
                        sizeof(buffer), lpByte, NULL);

Form1-&gt;Caption = buffer-&gt;ReparseTag;
</code></pre>
<p>Funktioniert auch nicht.</p>
<p>Kennt sich jemand damit aus ???</p>
<p>==&gt;Eisbeer&lt;==</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1460964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1460964</guid><dc:creator><![CDATA[Eisbeer]]></dc:creator><pubDate>Fri, 22 Feb 2008 13:44:35 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Fri, 22 Feb 2008 14:15:19 GMT]]></title><description><![CDATA[<p><a href="http://www.zdnet.de/builder/program/0,39023551,39149503-5,00.htm" rel="nofollow">http://www.zdnet.de/builder/program/0,39023551,39149503-5,00.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1460983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1460983</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 22 Feb 2008 14:15:19 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Fri, 22 Feb 2008 14:15:44 GMT]]></title><description><![CDATA[<p><a href="http://www.codeproject.com/KB/winsdk/junctionpoints.aspx" rel="nofollow">http://www.codeproject.com/KB/winsdk/junctionpoints.aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1460984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1460984</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 22 Feb 2008 14:15:44 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Fri, 22 Feb 2008 16:21:57 GMT]]></title><description><![CDATA[<p>Woher bekomme ich dann den Pfad aus der Funktion DeviceIoControl?</p>
<p>In deinem anderen Beispiel stand, dass das Ziel von C:\Programme mit \?\\C:\\Programme angesprochen werden kann.</p>
<p>Wenn ich mit FindFirst das Verz. \?\\C:\\Programme angebe bekomme ich nichts angezeigt.</p>
<p>Laut dem BSP. von ZDNET sollte dies ja ohne Probleme möglich sein. Nur wi ??</p>
<p>==&gt;Eisbeer&lt;==</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461070</guid><dc:creator><![CDATA[Eisbeer]]></dc:creator><pubDate>Fri, 22 Feb 2008 16:21:57 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Fri, 22 Feb 2008 17:01:11 GMT]]></title><description><![CDATA[<p>Eisbeer schrieb:</p>
<blockquote>
<p>Woher bekomme ich dann den Pfad aus der Funktion DeviceIoControl?</p>
</blockquote>
<p>Vielleicht aus der &quot;PREPARSE_DATA_BUFFER&quot; Struktur?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461097</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 22 Feb 2008 17:01:11 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Fri, 22 Feb 2008 17:40:34 GMT]]></title><description><![CDATA[<p>Gibt´s dafür ein Beispiel ?</p>
<p>Ich bekomme immer nur einen Zahlen-Wert zurück</p>
<p>==&gt;Eisbeer&lt;==</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461119</guid><dc:creator><![CDATA[Eisbeer]]></dc:creator><pubDate>Fri, 22 Feb 2008 17:40:34 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Fri, 22 Feb 2008 17:42:44 GMT]]></title><description><![CDATA[<p>Poste doch mal Dein Beispiel... aber bitte ein vollständiges und keine Code-Fragmente mit denen man nix anfangen kann...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461122</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 22 Feb 2008 17:42:44 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Fri, 22 Feb 2008 17:51:31 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">//---------------------------------------------------------------------------

#include &lt;vcl.h&gt;
#pragma hdrstop

#include &quot;Unit1.h&quot;

//#include &lt;winnt.h&gt;

#include &lt;winIOCtl.h&gt; //DeviceIoControl
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HANDLE hFile;
_REPARSE_GUID_DATA_BUFFER* buffer;

char *pOut;
unsigned long int* lpByte;

const char* MyFile = &quot;C:\\Programme&quot;;

hFile = CreateFile(MyFile, GENERIC_READ, 0, NULL,
        OPEN_EXISTING, 0, NULL);

CloseHandle(hFile);

DeviceIoControl(hFile, FSCTL_GET_REPARSE_POINT, buffer, NULL, pOut,
                        sizeof(buffer), lpByte, NULL);

Form1-&gt;Caption = buffer-&gt;ReparseTag;
}
//---------------------------------------------------------------------------
</code></pre>
<p>==&gt;Eisbeer&lt;==</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461128</guid><dc:creator><![CDATA[Eisbeer]]></dc:creator><pubDate>Fri, 22 Feb 2008 17:51:31 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Fri, 22 Feb 2008 18:00:34 GMT]]></title><description><![CDATA[<p>Warum verwendest Du &quot;REPARSE_GUID_DATA_BUFFER&quot;?<br />
Hast Du die Links je mals angeschaut?<br />
Wo hast Du &quot;lpByte&quot; initialisiert?<br />
Wo hast Du die Rückgabewerte abgefragt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461135</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 22 Feb 2008 18:00:34 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Fri, 22 Feb 2008 18:07:36 GMT]]></title><description><![CDATA[<p>Natürlich habe ich mir die Beispiele angesehen</p>
<p>!!! Mehrmals studiert !!!</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#include &lt;vcl.h&gt;
#pragma hdrstop

#include &quot;Unit1.h&quot;

//#include &lt;winnt.h&gt;

#include &lt;winIOCtl.h&gt; //DeviceIoControl
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
struct REPARSE_DATA_BUFFER {
    DWORD  ReparseTag;
    WORD   ReparseDataLength;
    WORD   Reserved;
    struct {
        WORD   SubstituteNameOffset;
        WORD   SubstituteNameLength;
        WORD   PrintNameOffset;
        WORD   PrintNameLength;
        WCHAR  PathBuffer[1];
    } SymbolicLinkReparseBuffer;
};

HANDLE hFile;
REPARSE_DATA_BUFFER* buffer;

const char* MyFile = &quot;C:\\Programme&quot;;

hFile = CreateFile(MyFile, GENERIC_READ, 0, NULL,
        OPEN_EXISTING, 0, NULL);

CloseHandle(hFile);

DeviceIoControl(hFile, FSCTL_GET_REPARSE_POINT, buffer, NULL, NULL,
                        sizeof(buffer), NULL, NULL);

buffer-&gt;ReparseTag = IO_REPARSE_TAG_MOUNT_POINT;

AnsiString Pfad = buffer-&gt;ReparseTag;

ShowMessage(Pfad);
</code></pre>
<p>Beim Abfragen der Rückgabe-Werte habe ich ja das Problem immer nur eine Zahl zu bekommen und kein Verzeichnis.</p>
<p>==&gt;Eisbeer&lt;==</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461143</guid><dc:creator><![CDATA[Eisbeer]]></dc:creator><pubDate>Fri, 22 Feb 2008 18:07:36 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Fri, 22 Feb 2008 18:13:52 GMT]]></title><description><![CDATA[<p>Wo wird der Speicher für &quot;REPARSE_DATA_BUFFER&quot; allokiert?<br />
Wo prüfst Du die Rückgabewerte der *Funktionen&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461150</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 22 Feb 2008 18:13:52 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Fri, 22 Feb 2008 18:29:23 GMT]]></title><description><![CDATA[<p>Ich komme damit überhaupt nicht klar...</p>
<p>==&gt;Eisbeer&lt;==</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461163</guid><dc:creator><![CDATA[Eissbeer]]></dc:creator><pubDate>Fri, 22 Feb 2008 18:29:23 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Sat, 23 Feb 2008 07:56:39 GMT]]></title><description><![CDATA[<p>Ich habe mich durch Seitenweise QuellCode und Internet-Seiten gelesen und verstehe immer noch nicht wie ich die Funktionen anwenden muss.</p>
<p>Könnte mir das jemand erklären oder hat das schonmal gemacht ?<br />
Ein kleines Beispiel wäre ganz gut.</p>
<p>Ich benutze den BcB 6. Dieser wirft mir beim compilieren der beispiele nur Fehlermeldungen um den Kopf.</p>
<p>Es geht ja nur um 2 Win-API Auftrufe. Das kann doch nicht sooooo schwer sein...</p>
<p>==&gt;Eisbeer&lt;==</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461312</guid><dc:creator><![CDATA[Eisbeer]]></dc:creator><pubDate>Sat, 23 Feb 2008 07:56:39 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Sat, 23 Feb 2008 10:00:23 GMT]]></title><description><![CDATA[<p>Also, extra für Dich:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;tchar.h&gt;
#include &lt;stdio.h&gt;

typedef struct _REPARSE_DATA_BUFFER {
  ULONG  ReparseTag;
  USHORT  ReparseDataLength;
  USHORT  Reserved;
  union {
    struct {
      USHORT  SubstituteNameOffset;
      USHORT  SubstituteNameLength;
      USHORT  PrintNameOffset;
      USHORT  PrintNameLength;
      WCHAR  PathBuffer[1];
      } SymbolicLinkReparseBuffer;
    struct {
      USHORT  SubstituteNameOffset;
      USHORT  SubstituteNameLength;
      USHORT  PrintNameOffset;
      USHORT  PrintNameLength;
      WCHAR  PathBuffer[1];
      } MountPointReparseBuffer;
    struct {
      UCHAR  DataBuffer[1];
    } GenericReparseBuffer;
  };
} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER;

#define REPARSE_DATA_BUFFER_HEADER_SIZE  FIELD_OFFSET(REPARSE_DATA_BUFFER, GenericReparseBuffer)

#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE  ( 16 * 1024 )

// See: Setting the Backup and Restore Privileges
// http://msdn2.microsoft.com/en-us/library/aa387705
HRESULT ModifyPrivilege(IN LPCTSTR szPrivilege, IN BOOL fEnable)
{
  HRESULT hr = S_OK;
  TOKEN_PRIVILEGES NewState;
  LUID             luid;
  HANDLE hToken    = NULL;

  // Open the process token for this process.
  if (!OpenProcessToken(GetCurrentProcess(),
    TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,
    &amp;hToken ))
  {
    _tprintf(_T(&quot;Failed OpenProcessToken\n&quot;));
    return ERROR_FUNCTION_FAILED;
  }

  // Get the local unique ID for the privilege.
  if ( !LookupPrivilegeValue( NULL,
    szPrivilege,
    &amp;luid ))
  {
    CloseHandle( hToken );
    _tprintf(_T(&quot;Failed LookupPrivilegeValue\n&quot;));
    return ERROR_FUNCTION_FAILED;
  }

  // Assign values to the TOKEN_PRIVILEGE structure.
  NewState.PrivilegeCount = 1;
  NewState.Privileges[0].Luid = luid;
  NewState.Privileges[0].Attributes = 
    (fEnable ? SE_PRIVILEGE_ENABLED : 0);

  // Adjust the token privilege.
  if (!AdjustTokenPrivileges(hToken,
    FALSE,
    &amp;NewState,
    0,
    NULL,
    NULL))
  {
    _tprintf(_T(&quot;Failed AdjustTokenPrivileges\n&quot;));
    hr = ERROR_FUNCTION_FAILED;
  }

  // Close the handle.
  CloseHandle(hToken);

  return hr;
}  // ModifyPrivilege

int main()
{
  HANDLE hFile;
  LPCTSTR szMyFile = _T(&quot;C:\\Programme&quot;);

	DWORD dwFA = GetFileAttributes(szMyFile);
  if (dwFA &amp; FILE_ATTRIBUTE_REPARSE_POINT)
    _tprintf(_T(&quot;'%s' is a reparse point\n&quot;), szMyFile);
  else
    _tprintf(_T(&quot;'%s' is NOT a reparse point\n&quot;), szMyFile);

  ModifyPrivilege(SE_BACKUP_NAME, TRUE);

  // Open the directory to query the reparse-data
  hFile = CreateFile(szMyFile, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT, NULL);
  if (hFile == INVALID_HANDLE_VALUE)
  {
    _tprintf(_T(&quot;Could not open dir '%s'; error: %d\n&quot;), szMyFile, GetLastError());
    return 1;
  }

  DWORD dwBufSize = MAXIMUM_REPARSE_DATA_BUFFER_SIZE;
  REPARSE_DATA_BUFFER* rdata;
  rdata = (REPARSE_DATA_BUFFER*) malloc(dwBufSize);

  DWORD dwRetLen;
  BOOL bRet = DeviceIoControl(hFile, FSCTL_GET_REPARSE_POINT, NULL, 0, rdata, dwBufSize, &amp;dwRetLen, NULL);
  if (bRet == FALSE)
  {
    _tprintf(_T(&quot;DeviceIoControl failed with error: %d\n&quot;), GetLastError());
    CloseHandle(hFile);
    return 1;
  }
  CloseHandle(hFile);

  _tprintf(_T(&quot;ReparseTag: %d - &quot;), rdata-&gt;ReparseTag);
  if (IsReparseTagMicrosoft(rdata-&gt;ReparseTag))
  {
    _tprintf(_T(&quot;MicrosoftTag - &quot;));
  }
  if (IsReparseTagNameSurrogate(rdata-&gt;ReparseTag))
  {
    _tprintf(_T(&quot;NameSurrogate - &quot;));
  }

  switch(rdata-&gt;ReparseTag)
  {
  case IO_REPARSE_TAG_MOUNT_POINT:
    _tprintf(_T(&quot;MOUNT_POINT\n&quot;));
    break;
  case IO_REPARSE_TAG_HSM:
    _tprintf(_T(&quot;HSM\n&quot;));
    break;
  case IO_REPARSE_TAG_SIS:
    _tprintf(_T(&quot;SIS\n&quot;));
    break;
  case IO_REPARSE_TAG_SYMLINK:
    _tprintf(_T(&quot;SYMLINK\n&quot;));
    break;
  case IO_REPARSE_TAG_DFSR:
    _tprintf(_T(&quot;DFSR\n&quot;));
    break;
  case IO_REPARSE_TAG_DFS:
    _tprintf(_T(&quot;DFS\n&quot;));
    break;
  default:
    _tprintf(_T(&quot;unknown\n&quot;));
    break;
  }

  if (IsReparseTagMicrosoft(rdata-&gt;ReparseTag))
  {
    size_t slen = rdata-&gt;MountPointReparseBuffer.SubstituteNameLength / sizeof(WCHAR);
    WCHAR *szSubName = new WCHAR[slen+1];
    wcsncpy(szSubName, &amp;rdata-&gt;MountPointReparseBuffer.PathBuffer[rdata-&gt;MountPointReparseBuffer.SubstituteNameOffset / sizeof(WCHAR)], slen);
    szSubName[slen] = 0;
    printf(&quot;SubstitutionName (len: %d): '%S'\n&quot;, rdata-&gt;MountPointReparseBuffer.SubstituteNameLength, szSubName);
    delete [] szSubName;

    size_t plen = rdata-&gt;MountPointReparseBuffer.PrintNameLength / sizeof(WCHAR);
    WCHAR *szPrintName = new WCHAR[plen+1];
    wcsncpy(szPrintName, &amp;rdata-&gt;MountPointReparseBuffer.PathBuffer[rdata-&gt;MountPointReparseBuffer.PrintNameOffset / sizeof(WCHAR)], plen);
    szPrintName[plen] = 0;
    printf(&quot;PrintName (len: %d): '%S'\n&quot;, rdata-&gt;MountPointReparseBuffer.PrintNameLength, szPrintName);
    delete [] szPrintName;
  }
  else
  {
    _tprintf(_T(&quot;Not a Microsoft-reparse point - could not query data!\n&quot;));
  }

  free(rdata);
}
</code></pre>
<p>Man beachte aber: Unter Vista läuft dies nur als *echter* Admin!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461354</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 23 Feb 2008 10:00:23 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Mon, 25 Feb 2008 10:09:41 GMT]]></title><description><![CDATA[<p>Ich habe den Code in der Mittagspause in ein Consolen-Programm gepackt, funktioniert in deiner Fassung genau wie er soll.<br />
==&gt; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> Vielen Dank <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> &lt;==</p>
<p>In der Switch-Anweisung switch(rdata-&gt;ReparseTag) sind die Symbole</p>
<p>IO_REPARSE_TAG_SYMLINK<br />
IO_REPARSE_TAG_DFSR<br />
IO_REPARSE_TAG_DFS</p>
<p>Undefiniert (Header-Datei winnt.h Zeile 5357 Version 0082)</p>
<p>Welche Winnt.h hattes du in dem obigen Beispiel benutzt ?</p>
<pre><code class="language-cpp">//-------------------
</code></pre>
<p>Gibt es eine Möglichkeit die gewünschte Information ohne ´echte Administrator-Rechte` zu erhalten ??<br />
Es wird ja schon das Privileg 'SE_BACKUP_NAME' gesetzt.<br />
Machbar ist es, nur wie ?</p>
<pre><code class="language-cpp">//-------------------
</code></pre>
<p>Wenn MyFile = &quot;C:\\Programme\Gemeinsame Dateien&quot;; ==&gt; 'C:\Program Files\Common Files\' gibt es keine Ausgabe des PrintNames.</p>
<p>Könntest du mir das erklären ?</p>
<p>==&gt;Eisbeer&lt;==</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462333</guid><dc:creator><![CDATA[Eisbeer]]></dc:creator><pubDate>Mon, 25 Feb 2008 10:09:41 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Mon, 25 Feb 2008 10:44:36 GMT]]></title><description><![CDATA[<p>Winnt.h (VisualStudio 2008 / v0091)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462344</guid><dc:creator><![CDATA[Eisbeer]]></dc:creator><pubDate>Mon, 25 Feb 2008 10:44:36 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Mon, 25 Feb 2008 12:09:14 GMT]]></title><description><![CDATA[<p>Wenn Du mit VS2008 ein Default-Projekt anlegst und den Code dann reinkopierst sollte alles gehen.</p>
<p>PS: Es muss aber wohl noch ein Weg ohne Admin-Rechte geben... muss ich aber auch zuerst sichen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462393</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Mon, 25 Feb 2008 12:09:14 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Tue, 26 Feb 2008 11:16:48 GMT]]></title><description><![CDATA[<p>Funktioniert alles bis auf die Sache mit den Admin-Rechten unter Vista.</p>
<p>Es ist komisch, dass die Anwendung das 'SE_BACKUP_NAME' Privileg braucht und dann trotzdem Admin-Rechte verlangt. Wenn das Privileg nicht gesetzt ist und das Programm als Admin läuft, funktioniert´s auch nicht...</p>
<p>Admin-Rechte und trotzdem Privileg ? MSDN hat auch keinen Hinweis dazu.</p>
<p>==&gt;Eisbeer&lt;==</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1463116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1463116</guid><dc:creator><![CDATA[Eisbeer]]></dc:creator><pubDate>Tue, 26 Feb 2008 11:16:48 GMT</pubDate></item><item><title><![CDATA[Reply to RearsePoint on Thu, 06 Mar 2008 09:57:24 GMT]]></title><description><![CDATA[<p>Siehe:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-1469195.html#1469195" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-p-is-1469195.html#1469195</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1469196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1469196</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Thu, 06 Mar 2008 09:57:24 GMT</pubDate></item></channel></rss>