NetShareGetInfo Fehler nr. 53
-
#define UNICODE #include <windows.h> #include <stdio.h> #include <lm.h> void main( int argc, TCHAR *lpszArgv[ ]) { PSHARE_INFO_502 BufPtr; NET_API_STATUS res; LPTSTR lpszServer = NULL, lpszShare; // // Check command line arguments. // switch(argc) { case 3: lpszServer = lpszArgv[2]; case 2: lpszShare = lpszArgv[1]; break; default: printf("Usage: NetShareGetInfo sharename <servername>\n"); return; } // // Call the NetShareGetInfo function, specifying level 502. // if((res = NetShareGetInfo (lpszServer,lpszShare,502,(LPBYTE *) &BufPtr)) == ERROR_SUCCESS) { // // Print the retrieved data. // printf("%S\t%S\t%u\n",BufPtr->shi502_netname, BufPtr->shi502_path, BufPtr->shi502_current_uses); // // Validate the value of the // shi502_security_descriptor member. // if (IsValidSecurityDescriptor(BufPtr->shi502_security_descriptor)) printf("It has a valid Security Descriptor.\n"); else printf("It does not have a valid Security Descriptor.\n"); // // Free the allocated memory. // NetApiBufferFree(BufPtr); } else printf("Error: %ld\n",res); return; }
Ich habe den Code einfach übernommen (Beispiel zu NetShareGetInfo()), compliert und eine exe erzeugt.
ICh rufe das Programm folgendermassen auf:
NetShareGetInfo Temp \\MeinServer
wobei "Temp" ist das freigegebene Verzeichnis auf dem Server "MeinServer". (BS WinNT). Ich bekomme aber den Fehler Nr. 53. Weiß jemand, was dieser Fehler bedeutet? In der SDK Hilfe steht nämlich nichts darüber.Danke im Voraus.
APIAnfänger
-
Schau dir mal den Wert der Konstanten von NetShareGetInfo an. Und dann evtl noch GetLastError()
-
Danke erstmal.
flenders schrieb:
Schau dir mal den Wert der Konstanten von NetShareGetInfo an. Und dann evtl noch GetLastError()
Hab ich, aber dort steht nichts über den Fehler nr. 53, oder bin ich blind? Oder habe ich Dich nicht richtig verstanden?
Jedenfalls habe ich verschiedenes ausprobiert wie z.B.:
SHARE_INFO_0 für SHARE_INFO_502 (Wegen Zugriffsrechte)
NetShareGetInfo Free \\localhost
Aber ebenfalls ohne Erfolg. Ich bekomme immer Fehler nr. 53Hilfe!!
APIAnfänger
-
Du solltest dir die Return values anschauen! (Fehler-Code - Konstanten)
Und dann kannst du dir mal den Wert von GetLastError ausgeben lassen. Dafür findest du hier die jeweilige Bedeutung.
-
D:\>net helpmsg 53
Der Netzwerkpfad wurde nicht gefunden.
Colonius
-
Danke vielmals Euch beiden. Genau danach habe ich gesucht.
Nun weiß ich, was der Fehlercode bedeutet, weiß aber nicht, warum ich den bekomme.
Ich habe ein Verzeichnis "Temp" auf einen Server "MeinServer" freigegeben (Zugriffsrechte stimmen). Ich rufe die Exe "MeinProgramm", die ich mit dem oben aufgelisteten Code erzeugt habe, folgendermassen auf:
MeinProgramm Temp \\MeinServer
Ich bekomme aber jedes Mal den Fehler mit dem Fehlercode 53.Woran könnte das liegen?
Danke und viele Grüße
APIAnfänger