Imports System.Runtime.InteropServices
Declare Unicode Function NetShareAdd Lib "netapi32.dll" ( _
<MarshalAs(UnmanagedType.LPWStr)> _
ByVal servername As String, _
ByVal level As Integer, _
ByRef buf As SHARE_INFO_2, _
ByRef parm_err As Integer) As Integer
'Definizione di errore.
Public Enum NetError
NERR_Success = 0
ERROR_ACCESS_DENIED = 5
ERROR_INVALID_PARAMETER = 87
ERROR_INVALID_NAME = 123
ERROR_INVALID_LEVEL = 124
NERR_BASE = 2100
NERR_UnknownDevDir = (NERR_BASE + 16)
NERR_RedirectedPath = (NERR_BASE + 17)
NERR_DuplicateShare = (NERR_BASE + 18)
NERR_BufTooSmall = (NERR_BASE + 23)
End Enum
' definizione di condivisione
Public Enum ShareType
' Disk Share
Disk = 0
' Printer Share
Printer = 1
' Device Share
Device = 2
' IPC Share
IPC = 3
'>Special Share
Special = &H80000000
End Enum
'Informazioni relativa ai permessi
Public Enum SharePermissions
ACCESS_NONE = 0
ACCESS_READ = 1
ACCESS_WRITE = 2
ACCESS_CREATE = 4
ACCESS_EXEC = 8
ACCESS_DELETE = &H10
ACCESS_ATRIB = &H20
ACCESS_PERM = &H40
ACCESS_ALL = ACCESS_READ + _
ACCESS_WRITE + _
ACCESS_CREATE + _
ACCESS_EXEC + _
ACCESS_DELETE + _
ACCESS_ATRIB + _
ACCESS_PERM
ACCESS_GROUP = &H8000
End Enum
<StructLayout(LayoutKind.Sequential)> _
Public Structure SHARE_INFO_2
<MarshalAs(UnmanagedType.LPWStr)> _
Public shi2_netname As String
<MarshalAs(UnmanagedType.U4)> _
Public shi2_type As ShareType
<MarshalAs(UnmanagedType.LPWStr)> _
Public shi2_remark As String
<MarshalAs(UnmanagedType.U4)> _
Public shi2_permissions As SharePermissions
<MarshalAs(UnmanagedType.U4)> _
Public shi2_max_uses As Integer
<MarshalAs(UnmanagedType.U4)> _
Public shi2_current_uses As Integer
<MarshalAs(UnmanagedType.LPWStr)> _
Public shi2_path As String
<MarshalAs(UnmanagedType.LPWStr)> _
Public shi2_passwd As String
End Structure