Freigeben über


NPGetResourceInformation-Funktion (npapi.h)

Trennt den Teil einer Netzwerkressource, auf den über die WNet-API zugegriffen wird, von dem Teil, auf den über APIs zugegriffen wird, die für den Ressourcentyp spezifisch sind.

Syntax

DWORD NPGetResourceInformation(
  [in]      LPNETRESOURCEW lpNetResource,
  [out]     LPVOID         lpBuffer,
  [in, out] LPDWORD        lpBufferSize,
  [out]     LPWSTR         *lplpSystem
);

Parameter

[in] lpNetResource

Gibt die Netzwerkressource an, für die Informationen erforderlich sind. Das Feld lpRemoteName gibt den Remotenamen der Ressource an. Das aufrufende Programm sollte die Werte für die Felder lpProvider und dwType ausfüllen, wenn es diese Werte kennt. Andernfalls sollten diese Felder auf NULL festgelegt werden. Alle anderen Felder in NETRESOURCE werden ignoriert und nicht initialisiert.

Wenn die lpRemoteName-Zeichenfolge einen Teil enthält, auf den über WNet-APIs zugegriffen wird, und einen Teil, auf den über andere System-APIs zugegriffen wird, die für den Ressourcentyp spezifisch sind, sollte die Funktion nur Informationen über den Netzwerkteil der Ressource zurückgeben (mit Ausnahme von lplpSystem, wie weiter unten in diesem Thema beschrieben).

Wenn die Ressource beispielsweise "\server\share\dir1\dir2" lautet, wobei auf "\server\share" über WNet-APIs zugegriffen wird und auf "\dir1\dir2" über Dateisystem-APIs zugegriffen wird, sollte der Anbieter überprüfen, ob es sich um den richtigen Anbieter für "\server\share" handelt, aber nicht überprüfen muss, ob "\dir1\dir2" tatsächlich vorhanden ist.

[out] lpBuffer

Zeiger auf den Puffer, um das Ergebnis zu empfangen. Das erste Feld im Ergebnis ist eine einzelne NETRESOURCE-Struktur und zugeordnete Zeichenfolgen, die den Teil der Eingaberessource darstellen, auf den über die WNet-API zugegriffen wird, anstelle von System-APIs, die für den Ressourcentyp spezifisch sind. Wenn der Name der Eingabe-Remoteressource beispielsweise "\server\share\dir1\dir2" lautet, enthält die Ausgabe NETRESOURCE Informationen zur Ressource "\server\share". Die Felder lpRemoteName, lpProvider, dwType, dwDisplayType und dwUsage werden zurückgegeben, die Werte enthalten, wobei alle anderen Felder auf NULL festgelegt sind.

Das LpRemoteName-Feld sollte im gleichen Format zurückgegeben werden, das von der NPEnumResource-Funktion von einer Enumeration zurückgegeben wird, damit der Aufrufer einen Zeichenfolgenvergleich zwischen Groß- und Kleinschreibung durchführen kann. Dies ist erforderlich, um zu ermitteln, ob die Ausgabenetzwerkressource mit der von NPEnumResource zurückgegebenen Ressource identisch ist.

Der Anbieter sollte keine rein syntaktische Überprüfung durchführen, um festzustellen, ob er besitzer der Ressource ist. Dies kann zu falschen Ergebnissen führen, wenn zwei Netzwerke auf dem Client ausgeführt werden und der Anbieter, der die syntaktische Überprüfung durchführt, zuerst aufgerufen wird.

[in, out] lpBufferSize

Zeiger auf eine Position, die die Größe des Puffers in Bytes angibt, auf den lpBuffer verweist. Wenn der Puffer für das Ergebnis zu klein ist, platziert die Funktion die erforderliche Puffergröße an dieser Stelle und gibt den Fehler WN_MORE_DATA zurück.

[out] lplpSystem

Bei erfolgreicher Rückgabe wird ein Zeiger auf eine null-beendete Zeichenfolge im Ausgabepuffer angezeigt, die den Teil der Ressource angibt, auf den über systemspezifische APIs des Ressourcentyps zugegriffen wird und nicht über die WNet-API. Wenn kein solcher Teil vorhanden ist, wird lplpSystem auf NULL festgelegt. Wenn beispielsweise der Name der Eingabe-Remoteressource "\server\share\dir" lautet, wird lpRemoteName zurückgegeben, der auf "\server\share" verweist, und lplpSystem auf "\dir". Beide Zeichenfolgen werden im Puffer gespeichert, auf den lpBuffer verweist.

Rückgabewert

Wenn die Funktion erfolgreich ist, sollte sie WN_SUCCESS zurückgeben. Andernfalls sollte ein Fehlercode zurückgegeben werden, der einer der folgenden sein kann.

Rückgabecode Beschreibung
WN_MORE_DATA
Der Eingabepuffer ist zu klein.
WN_BAD_NETNAME
Die Ressource wird von diesem Anbieter nicht erkannt.
WN_BAD_VALUE
Ungültige dwUsage oder dwType.
WN_BAD_DEV_TYPE
Der Aufrufer wurde in einem nichtzero dwType übergeben, der nicht mit dem tatsächlichen Typ der Netzwerkressource übereinstimmt.
WN_NOT_AUTHENTICATED
Der Aufrufer wurde nicht beim Netzwerk authentifiziert.
WN_ACCESS_DENIED
Der Aufrufer wurde beim Netzwerk authentifiziert, verfügt aber nicht über ausreichende Berechtigungen.

Hinweise

Die Enumerationsstruktur kann mithilfe von NPOpenEnum und den zugehörigen Funktionen von einer benannten Netzwerkressource nach unten navigiert werden. Um von einer benannten Ressource nach oben zu navigieren, kann die NPGetResourceInformation-Funktion aufgerufen werden, um Informationen zur Ressource abzurufen, gefolgt von der NPGetResourceParent-Funktion , um den Namen und den Typ der übergeordneten Ressource abzurufen.

NPGetResourceInformation bestimmt, ob der angegebene Anbieter der richtige Anbieter ist, um auf eine Anforderung für eine angegebene Netzwerkressource zu antworten. Anschließend werden Informationen zum Ressourcentyp zurückgegeben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile npapi.h