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. 53

    Hilfe!!
    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


Anmelden zum Antworten