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
Zeigen Sie auf eine konstante null-beendete Zeichenfolge, die den Namen des lokalen Geräts angibt, für das der Netzwerkname abgerufen werden soll.
[out] lpRemoteName
Zeigen Sie auf eine mit 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 lpRemoteName Parameter in Zeichen verweist. Wenn die Funktion fehlschlägt, da 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 durch 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 stehen bei nachfolgenden Aufrufen zur Verfügung. |
|
Das Gerät ist derzeit nicht verbunden, es handelt sich jedoch 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 zum Abrufen einer Beschreibung des Fehlers die WNetGetLastError--Funktion auf. |
|
Keiner der Anbieter erkennt den lokalen Namen als Verbindung. Das Netzwerk ist jedoch nicht für mindestens einen Anbieter verfügbar, zu dem die Verbindung gehören kann. |
Bemerkungen
Wenn die Netzwerkverbindung über das Microsoft LAN Manager-Netzwerk hergestellt wurde und die aufrufende Anwendung in einer anderen Anmeldesitzung ausgeführt wird als die Anwendung, die die Verbindung hergestellt hat, tritt beim Aufruf der WNetGetConnection-Funktion für das zugeordnete lokale Gerät ein Fehler auf. Die Funktion schlägt mit ERROR_NOT_CONNECTED oder ERROR_CONNECTION_UNAVAIL fehl. Dies liegt daran, dass eine Verbindung, die mit Microsoft LAN Manager hergestellt wird, nur für Anwendungen sichtbar ist, die in derselben Anmeldesitzung ausgeführt werden wie die Anwendung, die die Verbindung hergestellt hat. (Um zu verhindern, dass der Aufruf von WNetGetConnection fehlschlägt, reicht es nicht aus, damit 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 die lokal eindeutigen Bezeichnersoder LUID, die einer Anmeldesitzung zugeordnet ist.) Dies kann sich auf Anwendungen auswirken, die eine der WNet-Funktionen aufrufen, um einen Netzlaufwerkbuchstaben unter einer Benutzeranmeldung zu erstellen, aber abfragen Sie vorhandene Netzlaufwerkbuchstaben unter einer anderen Benutzeranmeldung. Ein Beispiel für diese Situation könnte sein, wenn die zweite Anmeldung eines Benutzers innerhalb einer Anmeldesitzung erstellt wird, z. B. durch Aufrufen der CreateProcessAsUser--Funktion, und die zweite Anmeldung führt eine Anwendung aus, 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 noch vorhanden ist und das Beispiel auf jede Anmeldesitzung angewendet werden kann, einschließlich einer Terminaldienste-Sitzung. Weitere Informationen finden Sie unter Definieren eines MS-DOS Gerätenamens.
Beispiele
Ein Codebeispiel, das veranschaulicht, wie die WNetGetConnection--Funktion verwendet wird, um den Namen der Netzwerkressource abzurufen, die einem lokalen Gerät zugeordnet ist, finden Sie unter Abrufen des Verbindungsnamens.
Anmerkung
Der winnetwk.h-Header definiert WNetGetConnection als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 2000 Professional [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | winnetwk.h |
Library | Mpr.lib |
DLL- | Mpr.dll |
Siehe auch
übersicht über Windows Networking (WNet)