From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Enumeration of network shared under Windows (was: Interpretation of extensions different from Unix/Linux?)
Date: Fri, 21 Aug 2009 12:11:56 +0200
Date: 2009-08-21T12:11:56+02:00 [thread overview]
Message-ID: <1rfj4jvl20591$.pa4pifrjjs9r.dlg@40tude.net> (raw)
In-Reply-To: h6kok6$r2f$1@munin.nbi.dk
On Thu, 20 Aug 2009 19:08:31 -0500, Randy Brukardt wrote:
> I disagree with everything you wrote on this topic. And there will be a way
> to enumerate roots over my dead body, because it is not reliably
> implementable on Windows (no matter how you define the roots).
Here is complete Ada program that enumerates Windows shares:
with Ada.Text_IO; use Ada.Text_IO;
with Interfaces.C.Strings; use Interfaces.C.Strings;
with Win32; use Win32;
with Win32.Windef; use Win32.Windef;
with Win32.Winnetwk; use Win32.Winnetwk;
with Win32.Winnt; use Win32.Winnt;
with Win32.Winerror; use Win32.Winerror;
with System; use System;
with System.Address_To_Access_Conversions;
procedure Net_Share is
Result : DWORD;
Count : aliased DWORD;
Size : aliased DWORD;
Enumeration : aliased HANDLE;
Buffer : String (1..10_000);
use type DWORD;
function WNetOpenEnumA -- The standard version is
( dwScope : DWORD; -- unusable for our purpose
dwType : DWORD;
dwUsage : DWORD;
lpNetResource : Address;
lphEnum : access HANDLE
) return DWORD;
pragma Import (Stdcall, WNETOPENENUMA, "WNetOpenEnumA");
package Conversions is
new System.Address_To_Access_Conversions (NETRESOURCEA);
begin
Result :=
WNetOpenEnumA
( RESOURCE_CONNECTED,
RESOURCETYPE_DISK,
0,
Null_Address,
Enumeration'Access
);
if Result /= NO_ERROR then
Put_Line ("Error in WNetOpenEnumA" & DWORD'Image (Result));
end if;
loop
Count := 1;
Size := Buffer'Size / 8;
Result :=
WNetEnumResource
( Enumeration,
Count'Unchecked_Access,
Buffer'Address,
Size'Unchecked_Access
);
exit when Result = ERROR_NO_MORE_ITEMS;
if Result /= NO_ERROR then
Put_Line ("Error in WNetEnumResource" & DWORD'Image (Result));
end if;
declare
Resource : LPNETRESOURCEA :=
Conversions.To_Pointer
( Buffer'Address
) .all'Unchecked_Access;
begin
Put_Line
( Value (To_Chars_Ptr (Resource.lpLocalName))
& " "
& Value (To_Chars_Ptr (Resource.lpRemoteName))
);
end;
end loop;
Result := WNetCloseEnum (Enumeration);
if Result /= NO_ERROR then
Put_Line ("Error in WNetCloseEnum" & DWORD'Image (Result));
end if;
end Net_Share;
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2009-08-21 10:11 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-01 17:53 Interpretation of extensions different from Unix/Linux? vlc
2009-08-02 17:13 ` Jacob Sparre Andersen
2009-08-04 11:31 ` vlc
2009-08-04 11:44 ` Jacob Sparre Andersen
2009-08-04 11:57 ` Georg Bauhaus
2009-08-04 12:29 ` vlc
2009-08-04 13:43 ` Dmitry A. Kazakov
2009-08-14 4:33 ` Randy Brukardt
2009-08-14 7:37 ` Dmitry A. Kazakov
2009-08-04 12:25 ` vlc
2009-08-04 19:18 ` Jeffrey R. Carter
2009-08-04 19:52 ` Dmitry A. Kazakov
2009-08-04 20:45 ` Jeffrey R. Carter
2009-08-04 21:22 ` Dmitry A. Kazakov
2009-08-04 22:04 ` Jeffrey R. Carter
2009-08-05 8:33 ` Dmitry A. Kazakov
2009-08-05 16:07 ` Jeffrey R. Carter
2009-08-05 16:35 ` Dmitry A. Kazakov
2009-08-05 17:49 ` Jeffrey R. Carter
2009-08-05 18:16 ` Dmitry A. Kazakov
2009-08-05 19:27 ` Jeffrey R. Carter
2009-08-05 19:50 ` Dmitry A. Kazakov
2009-08-05 20:46 ` Jeffrey R. Carter
2009-08-06 7:43 ` Dmitry A. Kazakov
2009-08-05 21:33 ` Robert A Duff
2009-08-05 19:45 ` vlc
2009-08-05 19:56 ` Dmitry A. Kazakov
2009-08-14 4:56 ` Randy Brukardt
2009-08-14 8:01 ` Dmitry A. Kazakov
2009-08-14 23:02 ` Adam Beneschan
2009-08-14 23:54 ` Randy Brukardt
2009-08-15 8:10 ` Dmitry A. Kazakov
2009-08-15 12:49 ` Pascal Obry
2009-08-15 13:23 ` Dmitry A. Kazakov
2009-08-15 15:11 ` Pascal Obry
2009-08-15 17:11 ` Dmitry A. Kazakov
2009-08-15 20:07 ` Pascal Obry
2009-08-16 7:26 ` Dmitry A. Kazakov
2009-08-17 22:28 ` Randy Brukardt
2009-08-18 0:32 ` Adam Beneschan
2009-08-18 20:48 ` Randy Brukardt
2009-08-19 4:08 ` stefan-lucks
2009-08-19 22:01 ` Randy Brukardt
2009-08-19 7:37 ` Jean-Pierre Rosen
2009-08-19 16:10 ` Adam Beneschan
2009-08-19 22:11 ` Randy Brukardt
2009-08-18 7:48 ` Dmitry A. Kazakov
2009-08-18 20:37 ` Randy Brukardt
2009-08-19 8:04 ` Dmitry A. Kazakov
2009-08-19 10:32 ` Georg Bauhaus
2009-08-19 12:11 ` Dmitry A. Kazakov
2009-08-19 15:21 ` Georg Bauhaus
2009-08-19 22:40 ` Randy Brukardt
2009-08-20 8:00 ` Variable- and fixed-length-character strings (Was: Interpretation of extensions different from Unix/Linux?) Jacob Sparre Andersen
2009-08-20 19:40 ` Interpretation of extensions different from Unix/Linux? Dmitry A. Kazakov
2009-08-21 0:08 ` Randy Brukardt
2009-08-21 7:43 ` Dmitry A. Kazakov
2009-08-21 22:10 ` Randy Brukardt
2009-08-22 7:27 ` Dmitry A. Kazakov
2009-09-01 1:50 ` Randy Brukardt
2009-09-01 7:28 ` Dmitry A. Kazakov
2009-09-02 3:41 ` Stephen Leake
2009-09-02 7:17 ` Dmitry A. Kazakov
2009-09-02 19:49 ` tmoran
2009-09-03 7:41 ` Dmitry A. Kazakov
2009-09-03 17:27 ` tmoran
2009-09-03 20:44 ` Dmitry A. Kazakov
2009-09-03 22:22 ` Randy Brukardt
2009-09-04 7:40 ` Dmitry A. Kazakov
2009-09-05 1:58 ` Randy Brukardt
2009-09-05 2:08 ` Randy Brukardt
2009-09-05 8:59 ` Dmitry A. Kazakov
2009-08-21 10:11 ` Dmitry A. Kazakov [this message]
2009-08-15 16:01 ` Vadim Godunko
2009-08-16 13:13 ` Stephen Leake
2009-08-14 4:46 ` Randy Brukardt
2009-08-14 9:00 ` Dmitry A. Kazakov
2009-08-04 21:19 ` vlc
2009-08-14 5:19 ` Randy Brukardt
2009-08-14 6:13 ` Wilcards in Linux (was: Interpretation of extensions different from Unix/Linux?) stefan-lucks
2009-08-14 6:24 ` stefan-lucks
2009-08-14 10:05 ` Wilcards in Linux Markus Schoepflin
2009-08-14 10:22 ` Ludovic Brenta
2009-08-14 18:20 ` Tero Koskinen
2009-08-19 20:39 ` Interpretation of extensions different from Unix/Linux? Keith Thompson
2009-08-19 22:09 ` Robert A Duff
2009-08-20 7:49 ` Jacob Sparre Andersen
2009-08-20 15:56 ` Adam Beneschan
2009-08-20 21:58 ` sjw
2009-08-20 19:44 ` Robert A Duff
2009-08-20 21:34 ` Adam Beneschan
2009-08-20 22:03 ` (see below)
2009-08-21 0:55 ` tmoran
2009-08-20 23:55 ` Randy Brukardt
2009-08-21 17:58 ` Keith Thompson
2009-08-21 18:34 ` Dmitry A. Kazakov
2009-08-21 19:32 ` Jeffrey R. Carter
2009-08-21 21:34 ` Robert A Duff
2009-08-21 22:06 ` Hyman Rosen
2009-08-24 19:51 ` Keith Thompson
2009-08-28 0:27 ` Robert A Duff
2009-08-28 13:15 ` Anders Wirzenius
2009-08-28 15:02 ` Robert A Duff
2009-08-21 8:45 ` Stephen Leake
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox