WNetGetConnectionA-Funktion (winnetwk.h)
Die WNetGetConnection-Funktion ruft den Namen der Netzwerkressource ab, die einem lokalen Gerät zugeordnet ist.
Syntax
DWORD WNetGetConnectionA(
[in] LPCSTR lpLocalName,
[out] LPSTR lpRemoteName,
[in, out] LPDWORD lpnLength
);
Parameter
[in] lpLocalName
Zeiger auf eine konstante NULL-Zeichenfolge, die den Namen des lokalen Geräts angibt, für das der Netzwerkname abgerufen werden soll.
[out] lpRemoteName
Zeiger auf eine null-beendete Zeichenfolge, die den Remotenamen empfängt, der zum Herstellen der Verbindung verwendet wird.
[in, out] lpnLength
Zeiger auf eine Variable, die die Größe des Puffers angibt, auf den der parameter lpRemoteName in Zeichen verweist. Wenn die Funktion fehlschlägt, weil der Puffer nicht groß genug ist, gibt dieser Parameter die erforderliche Puffergröße zurück.
Rückgabewert
Wenn die Funktion erfolgreich ist, wird der Rückgabewert NO_ERROR.
Wenn die Funktion fehlschlägt, ist der Rückgabewert ein Systemfehlercode, z. B. einer der folgenden Werte.
Rückgabecode | Beschreibung |
---|---|
|
Die Zeichenfolge, auf die der lpLocalName-Parameter verweist, ist ungültig. |
|
Das von lpLocalName angegebene Gerät ist kein umgeleitetes Gerät. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise". |
|
Der Puffer ist zu klein. Der lpnLength-Parameter verweist auf eine Variable, die die erforderliche Puffergröße enthält. Weitere Einträge sind bei nachfolgenden Aufrufen verfügbar. |
|
Das Gerät ist derzeit nicht verbunden, aber es handelt sich um eine dauerhafte Verbindung. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise". |
|
Das Netzwerk ist nicht verfügbar. |
|
Es ist ein netzwerkspezifischer Fehler aufgetreten. Rufen Sie die WNetGetLastError-Funktion auf, um eine Beschreibung des Fehlers zu erhalten. |
|
Keiner der Anbieter erkennt, dass der lokale Name eine Verbindung aufweist. Das Netzwerk ist jedoch nicht für mindestens einen Anbieter verfügbar, zu dem die Verbindung möglicherweise gehört. |
Hinweise
Wenn die Netzwerkverbindung über das Microsoft LAN Manager-Netzwerk hergestellt wurde und die aufrufende Anwendung in einer anderen Anmeldesitzung als die Anwendung ausgeführt wird, die die Verbindung hergestellt hat, schlägt ein Aufruf der WNetGetConnection-Funktion für das zugeordnete lokale Gerät fehl. Die Funktion schlägt mit ERROR_NOT_CONNECTED oder ERROR_CONNECTION_UNAVAIL fehl. Dies liegt daran, dass eine mithilfe von Microsoft LAN Manager hergestellte Verbindung nur für Anwendungen sichtbar ist, die in derselben Anmeldesitzung wie die Anwendung ausgeführt werden, die die Verbindung hergestellt hat. (Um zu verhindern, dass der Aufruf von WNetGetConnection fehlschlägt, reicht es nicht aus, dass die Anwendung in dem Benutzerkonto ausgeführt wird, das die Verbindung erstellt hat.)
Windows Server 2003 und Windows XP: Diese Funktion fragt die MS-DOS-Gerätenamespaces ab, die einer Anmeldesitzung zugeordnet sind, da MS-DOS-Geräte durch AuthenticationID identifiziert werden. (Eine AuthenticationID ist der lokal eindeutige Bezeichner oder LUID, der einer Anmeldesitzung zugeordnet ist.) Dies kann sich auf Anwendungen auswirken, die eine der WNet-Funktionen aufrufen, um einen Netzwerklaufwerkbuchstaben unter einer Benutzeranmeldung zu erstellen, aber nach vorhandenen Netzlaufwerkbuchstaben unter einer anderen Benutzeranmeldung abfragen. Ein Beispiel für diese Situation kann sein, wenn die zweite Anmeldung eines Benutzers innerhalb einer Anmeldesitzung erstellt wird, z. B. durch Aufrufen der CreateProcessAsUser-Funktion , und die zweite Anmeldung eine Anwendung ausführt, die die GetLogicalDrives-Funktion aufruft . GetLogicalDrives gibt keine Netzwerklaufwerkbuchstaben zurück, die von einer WNet-Funktion unter der ersten Anmeldung erstellt wurden. Beachten Sie, dass im vorherigen Beispiel die erste Anmeldesitzung weiterhin vorhanden ist und das Beispiel auf jede Anmeldesitzung, einschließlich einer Terminaldienstesitzung, angewendet werden kann. Weitere Informationen finden Sie unter Definieren eines MS-DOS-Gerätenamens.
Beispiele
Ein Codebeispiel, das veranschaulicht, wie Sie die WNetGetConnection-Funktion verwenden, um den Namen der Netzwerkressource abzurufen, die einem lokalen Gerät zugeordnet ist, finden Sie unter Abrufen des Verbindungsnamens.
Hinweis
Der winnetwk.h-Header definiert WNetGetConnection als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winnetwk.h |
Bibliothek | Mpr.lib |
DLL | Mpr.dll |