Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die WNetAddConnection4-Funktion stellt eine Verbindung mit einer Netzwerkressource her. Die Funktion kann ein lokales Gerät an die Netzwerkressource umleiten.
Die WNetAddConnection4-Funktion ähnelt der WNetAddConnection3-Funktion . Der Hauptunterschied besteht darin, dass WNetAddConnection4 über einen zusätzlichen Parameter verfügt, der es dem Aufrufer ermöglicht, einen erweiterbaren Eigenschaftenbehälter mit Parametern anzugeben. Die Funktionen WNetAddConnection2, WNetAddConnection3 und WNetAddConnection4 ersetzen die WNetAddConnection-Funktion .
Syntax
DWORD WNetAddConnection4W(
HWND hwndOwner,
LPNETRESOURCEW lpNetResource,
PVOID pAuthBuffer,
DWORD cbAuthBuffer,
DWORD dwFlags,
PBYTE lpUseOptions,
DWORD cbUseOptions
);
Die Parameter
hwndOwner
Ein Handle für ein Fenster, das der Anbieter von Netzwerkressourcen als Besitzerfenster für Dialogfelder verwenden kann. Verwenden Sie diesen Parameter, wenn Sie den CONNECT_INTERACTIVE Wert im dwFlags-Parameter festlegen.
Der hwndOwner-Parameter kann NULL sein. Wenn ja, entspricht ein Aufruf von WNetAddConnection4 dem Aufrufen der WNetAddConnection2-Funktion .
lpNetResource
Ein Zeiger auf eine NETRESOURCE-Struktur , die Details der vorgeschlagenen Verbindung angibt, z. B. Informationen zur Netzwerkressource, zum lokalen Gerät und zum Netzwerkressourcenanbieter.
Sie müssen die folgenden Member der NETRESOURCE-Struktur angeben.
| Mitglied | Bedeutung |
|---|---|
| dwType | Der Typ der Netzwerkressource, mit der eine Verbindung hergestellt werden soll. Wenn das lpLocalName-Element auf eine nicht entspenstische Zeichenfolge verweist, kann dieses Element mit RESOURCETYPE_DISK oder RESOURCETYPE_PRINT identisch sein. Wenn lpLocalNameNULL ist oder auf eine leere Zeichenfolge zeigt, kann dwType gleich RESOURCETYPE_DISK, RESOURCETYPE_PRINT oder RESOURCETYPE_ANY sein. Obwohl dieses Mitglied erforderlich ist, werden seine Informationen möglicherweise vom Netzwerkdienstanbieter ignoriert. |
| lpLocalName | Ein Zeiger auf eine mit Null beendete Zeichenfolge, die den Namen eines lokalen Geräts angibt, das umgeleitet werden soll, z. B. "F:" oder "LPT1". Die Zeichenfolge wird ohne Groß-/Kleinschreibung behandelt. Wenn die Zeichenfolge leer ist oder lpLocalNameNULL ist, führt die Funktion eine Verbindung mit der Netzwerkressource aus, ohne ein lokales Gerät umzuleiten. |
| lpRemoteName | Ein Zeiger auf eine mit Null beendete Zeichenfolge, die die Netzwerkressource angibt, mit der eine Verbindung hergestellt werden soll. Die Zeichenfolge kann bis zu MAX_PATH Zeichen lang sein und muss den Benennungskonventionen des Netzwerkanbieters entsprechen. |
| lpProvider | Ein Zeiger auf eine mit Null beendete Zeichenfolge, die den Netzwerkanbieter angibt, mit dem eine Verbindung hergestellt werden soll. Wenn lpProviderNULL ist oder auf eine leere Zeichenfolge verweist, versucht das Betriebssystem, den richtigen Anbieter zu ermitteln, indem die Zeichenfolge analysiert wird, auf die das lpRemoteName-Element verweist. Wenn dieses Element nicht NULL ist, versucht das Betriebssystem, nur eine Verbindung mit dem benannten Netzwerkanbieter herzustellen. Sie sollten dieses Mitglied nur festlegen, wenn Sie wissen, welcher Netzwerkanbieter Sie verwenden möchten. Lassen Sie andernfalls das Betriebssystem bestimmen, welchem Netzwerkanbieter der Netzwerkname zugeordnet ist. |
Die WNetAddConnection4-Funktion ignoriert die anderen Member der NETRESOURCE-Struktur .
pAuthBuffer
Ein Zeiger auf einen Puffer, der Authentifizierungsinformationen für die Netzwerkressource enthält. Das Format dieses Puffers ist anbieterspezifisch. Wenn der Puffer NULL ist, werden die Standardauthentifizierungsinformationen verwendet.
cbAuthBuffer
Die Größe des Authentifizierungsinformationspuffers in Bytes, auf die der pAuthBuffer-Parameter verweist. Wenn pAuthBufferNULL ist, kann dieser Parameter null sein.
dwFlags
Eine Reihe von Verbindungsoptionen. Die folgenden Werte sind derzeit definiert:
| Wert | Bedeutung |
|---|---|
| CONNECT_INTERACTIVE | Wenn dieses Kennzeichen festgelegt ist, kann das Betriebssystem für Authentifizierungszwecke mit dem Benutzer interagieren. |
| CONNECT_PROMPT | Dieses Kennzeichen weist das System an, keine Standardeinstellungen für Benutzernamen oder Kennwörter zu verwenden, ohne dem Benutzer die Möglichkeit zu bieten, eine Alternative zu liefern. Dieses Kennzeichen wird ignoriert, es sei denn, CONNECT_INTERACTIVE ist ebenfalls festgelegt. |
| CONNECT_REDIRECT | Diese Kennzeichnung erzwingt die Umleitung eines lokalen Geräts beim Herstellen der Verbindung. Wenn das lpLocalName-Mitglied von NETRESOURCE ein lokales Gerät angibt, das umgeleitet werden soll, hat dieses Flag keine Auswirkungen, da das Betriebssystem weiterhin versucht, das angegebene Gerät umzuleiten. Wenn das Betriebssystem automatisch ein lokales Gerät auswäht, darf das dwType-Element nicht mit RESOURCETYPE_ANY identisch sein. Wenn dieses Kennzeichen nicht festgelegt ist, wird automatisch ein lokales Gerät für die Umleitung ausgewählt, wenn für das Netzwerk ein lokales Gerät umgeleitet werden muss. Windows Server 2003 und Windows XP: Wenn das System automatisch Netzlaufwerkbuchstaben zuweist, werden Buchstaben beginnend mit Z:, dann Y:, und endet mit C:. Dadurch wird die Kollision zwischen Den buchstaben pro Anmeldung (z. B. Netzlaufwerkbuchstaben) und globalen Laufwerkbuchstaben (z. B. Festplattenlaufwerken) reduziert. Beachten Sie, dass frühere Versionen von Windows Laufwerkbuchstaben beginnend mit C: und enden mit Z:. |
| CONNECT_UPDATE_PROFILE | Die Netzwerkressourcenverbindung sollte gespeichert werden. Wenn diese Bitkennzeichnung festgelegt ist, versucht das Betriebssystem automatisch, die Verbindung wiederherzustellen, wenn sich der Benutzer anmeldet. Das Betriebssystem merkt sich nur erfolgreiche Verbindungen, die lokale Geräte umleiten. Es merkt sich keine Verbindungen, die nicht erfolgreich oder gerätelos sind. (Eine gerätelose Verbindung tritt auf, wenn das lpLocalName-ElementNULL ist oder wenn es auf eine leere Zeichenfolge zeigt.) Wenn diese Bitkennzeichnung eindeutig ist, stellt das Betriebssystem die Verbindung bei der Anmeldung nicht automatisch wieder her. |
| CONNECT_COMMANDLINE | Wenn dieses Flag festgelegt ist, fordert das Betriebssystem den Benutzer mithilfe der Befehlszeile anstelle einer grafischen Benutzeroberfläche (GUI) zur Authentifizierung auf. Dieses Kennzeichen wird ignoriert, es sei denn, CONNECT_INTERACTIVE ist ebenfalls festgelegt. Windows 2000/NT und Windows Me/98/95: Dieser Wert wird nicht unterstützt. |
| CONNECT_CMD_SAVECRED | Wenn dieses Kennzeichen festgelegt ist und das Betriebssystem zur Eingabe einer Anmeldeinformation auffordert, sollten die Anmeldeinformationen vom Anmeldeinformations-Manager gespeichert werden. Wenn der Anmeldeinformations-Manager für die Anmeldesitzung des Anrufers deaktiviert ist oder wenn der Netzwerkanbieter das Speichern von Anmeldeinformationen nicht unterstützt, wird dieses Flag ignoriert. Dieses Kennzeichen wird auch ignoriert, es sei denn, Sie legen das CONNECT_COMMANDLINE Flag fest. Windows 2000/NT und Windows Me/98/95: Dieser Wert wird nicht unterstützt. |
lpUseOptions
Ein Zeiger auf einen Puffer, der eine Reihe von Optionen für die Verbindung enthält. Das Format dieses Puffers ist anbieterspezifisch. Wenn der Puffer NULL ist, werden die Standardoptionen verwendet.
cbUseOptions
Die Größe des Optionspuffers in Bytes, auf den der lpUseOptions-Parameter verweist. Wenn lpUseOptionsNULL ist, kann dieser Parameter null sein.
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 | Description |
|---|---|
| ERROR_ACCESS_DENIED | Der Aufrufer hat keinen Zugriff auf die Netzwerkressource. |
| ERROR_ALREADY_ASSIGNED | Das vom lpLocalName-Mitglied angegebene lokale Gerät ist bereits mit einer Netzwerkressource verbunden. |
| ERROR_BAD_DEV_TYPE | Der Typ des lokalen Geräts und der Typ der Netzwerkressource stimmen nicht überein. |
| ERROR_BAD_DEVICE | Der durch lpLocalName angegebene Wert ist ungültig. |
| ERROR_BAD_NET_NAME | Der vom lpRemoteName-Member angegebene Wert ist für einen Netzwerkressourcenanbieter nicht akzeptabel, entweder weil der Ressourcenname ungültig ist oder weil die benannte Ressource nicht gefunden werden kann. |
| ERROR_BAD_PROFILE | Das Benutzerprofil weist ein falsches Format auf. |
| ERROR_BAD_PROVIDER | Der vom lpProvider-Member angegebene Wert stimmt nicht mit einem Anbieter überein. |
| ERROR_BUSY | Der Router oder Anbieter ist ausgelastet, möglicherweise initialisiert. Der Anrufer sollte erneut versuchen. |
| ERROR_CANCELLED | Der Versuch, die Verbindung herzustellen, wurde vom Benutzer über ein Dialogfeld von einem der Netzwerkressourcenanbieter oder von einer aufgerufenen Ressource abgebrochen. |
| ERROR_CANNOT_OPEN_PROFILE | Das System kann das Benutzerprofil nicht öffnen, um dauerhafte Verbindungen zu verarbeiten. |
| ERROR_DEVICE_ALREADY_REMEMBERED | Ein Eintrag für das durch das lpLocalName-Element angegebene Gerät befindet sich bereits im Benutzerprofil. |
| ERROR_EXTENDED_ERROR | Es ist ein netzwerkspezifischer Fehler aufgetreten. Rufen Sie die WNetGetLastError-Funktion auf, um eine Beschreibung des Fehlers abzurufen. |
| ERROR_INVALID_PASSWORD | Das angegebene Kennwort ist ungültig, und das CONNECT_INTERACTIVE Flag ist nicht festgelegt. |
| ERROR_NO_NET_OR_BAD_PATH | Der Vorgang kann nicht ausgeführt werden, da eine Netzwerkkomponente nicht gestartet wird oder weil kein angegebener Name verwendet werden kann. |
| ERROR_NO_NETWORK | Das Netzwerk ist nicht verfügbar. |
Bemerkungen
Die WNetUseConnection-Funktion ähnelt der Funktion WNetAddConnection4 . Der Hauptunterschied besteht darin, dass WNetUseConnection automatisch ein nicht verwendetes lokales Gerät auswählen kann, um zur Netzwerkressource umzuleiten.
Unter Windows Server 2003 und Windows XP erstellen und löschen die WNet-Funktionen Netzwerklaufwerkbuchstaben im MS-DOS Gerätenamespace, der einer Anmeldesitzung zugeordnet ist, da MS-DOS Geräte durch AuthenticationID identifiziert werden (eine lokal eindeutige ID oder 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. Der Aufruf der GetLogicalDrives-Funktion gibt keine Netzwerklaufwerkbuchstaben zurück, die von WNet-Funktionsaufrufen 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.
Wenn unter Windows Server 2003 und Windows XP ein Dienst, der als LocalSystem ausgeführt wird, die WNetAddConnection4-Funktion aufruft, ist das zugeordnete Laufwerk für alle Benutzeranmeldesitzungen sichtbar.
Für Microsoft-Netzwerkanbieter kann das lpRemoteName-Mitglied der NETRESOURCE-Struktur , auf das der lpNetResource-Parameter verweist, eine IPv4-Adresse in punktierter Dezimalnotation enthalten. Ein Beispiel für eine Freigabe kann folgendes sein:
\\192.168.1.1\share
Für Microsoft-Netzwerkanbieter unter Windows Vista und höher kann das lpRemoteName-Mitglied der NETRESOURCE-Struktur , auf das der lpNetResource-Parameter verweist, eine IPv6-Adresse enthalten. Das IPv6-Literalformat muss jedoch verwendet werden, damit die IPv6-Adresse korrekt analysiert wird. Eine IPv6-Literaladresse weist das Formular auf:
ipv6-address with the ':' characters replaced by '-' charactersfollowed by the ".ipv6-literal.net" string.
For example, for the following IPv6 address:
2001:4898:9:3:c069:aa97:fe76:2449
Ein Beispiel für eine Freigabe kann folgendes sein:
\\2001-4898-9-3-c069-aa97-fe76-2449.ipv6-literal.net\share
Andere Netzwerkanbieter unterstützen möglicherweise das lpRemoteName-Mitglied der NETRESOURCE-Struktur , auf das der lpNetResource-Parameter verweist, der eine IPv4- oder IPv6-Adresse enthält, dies gilt jedoch für einen bestimmten Netzwerkanbieter.
Windows 7 und Windows Server 2008 R2: Wenn die WNetAddConnection4-Funktion mit expliziten Benutzeranmeldeinformationen aufgerufen wird, die im pAuthBuffer angegeben sind, um eine Verbindung mit einer Netzwerkressource auf einem bestimmten Server herzustellen und dann erneut mit dem Parameter ALS NULL (zur Verwendung der Standardanmeldeinformationsinformationen) auf demselben Server aufgerufen wird, schlägt der Aufruf fehl. Der zurückgegebene Fehler wird ERROR_BAD_USERNAME oder ERROR_INVALID_PASSWORD.
Hinweis
Der winnetwk.h-Header definiert WNetAddConnection4 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 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ützter 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 |