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 |
---|---|
|
Der Eingabepuffer ist zu klein. |
|
Die Ressource wird von diesem Anbieter nicht erkannt. |
|
Ungültige dwUsage oder dwType. |
|
Der Aufrufer wurde in einem nichtzero dwType übergeben, der nicht mit dem tatsächlichen Typ der Netzwerkressource übereinstimmt. |
|
Der Aufrufer wurde nicht beim Netzwerk authentifiziert. |
|
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 |