TAP-Win32 is the win32 equivalent of linux/unix tun tap devices.

i need to:
- discover installed taps
- set device options (Dont need ip and etc, just the basic ioctls)
- read and write to device (after set up it becomes just a simple file)

i tried this :

Uses Windows, Classes;

Const
        TAP_Device = 
'\\\\.\\Global\\{44F7688F-77FA-43DC-8D8F-9CBA23E01BB0}.tap';

Var
        Handle : Integer;
        Buffer : Pointer;
        Stream : THandleStream;
        Count  : Integer;
        
Begin
        Handle := CreateFile(PChar(TAP_Device), GENERIC_READ Or
GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM Or
FILE_FLAG_OVERLAPPED, 0);
        WriteLn(Handle);
        Stream := THandleStream.Create(Handle);
        Buffer := GetMem(2048);
        Repeat
                Count := Stream.Read(Buffer^, 2048);
                If Count > 0 Then
                        WriteLn('Got ', Count, ' bytes !');
                Stream.Write(Buffer^, Count);
        Until False;
        Stream.Free;
        FreeMem(Buffer, 2048);
        CloseHandle(Handle);
End.

(translated from a C# example)

but the handle returned is always -1

(The guid is correct as returned by openvpn)

2010/5/13 Marc Weustink <m...@dommelstein.net>:
> Felipe Monteiro de Carvalho wrote:
>>
>> What does TAP stand for?
>
> see http://en.wikipedia.org/wiki/TUN/TAP for some pointers.
>
> Marc
>
>
>
> _______________________________________________
> fpc-pascal maillist  -  fpc-pas...@lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to