📄 jwalmshare.pas
字号:
sesi502_cname: LMSTR; // client name (no backslashes)
sesi502_username: LMSTR;
sesi502_num_opens: DWORD;
sesi502_time: DWORD;
sesi502_idle_time: DWORD;
sesi502_user_flags: DWORD;
sesi502_cltype_name: LMSTR;
sesi502_transport: LMSTR;
end;
{$EXTERNALSYM _SESSION_INFO_502}
SESSION_INFO_502 = _SESSION_INFO_502;
{$EXTERNALSYM SESSION_INFO_502}
TSessionInfo502 = SESSION_INFO_502;
PSessionInfo502 = PSESSION_INFO_502;
//
// Special Values and Constants - Session
//
//
// Bits defined in sesi1_user_flags.
//
const
SESS_GUEST = $00000001; // session is logged on as a guest
{$EXTERNALSYM SESS_GUEST}
SESS_NOENCRYPTION = $00000002; // session is not using encryption
{$EXTERNALSYM SESS_NOENCRYPTION}
SESI1_NUM_ELEMENTS = 8;
{$EXTERNALSYM SESI1_NUM_ELEMENTS}
SESI2_NUM_ELEMENTS = 9;
{$EXTERNALSYM SESI2_NUM_ELEMENTS}
//
// CONNECTION API
//
//
// Function Prototypes - CONNECTION
//
function NetConnectionEnum(servername, qualifier: LMSTR; level: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; entriesread, totalentries, resume_handle: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetConnectionEnum}
//
// Data Structures - CONNECTION
//
type
LPCONNECTION_INFO_0 = ^CONNECTION_INFO_0;
{$EXTERNALSYM LPCONNECTION_INFO_0}
PCONNECTION_INFO_0 = ^CONNECTION_INFO_0;
{$EXTERNALSYM PCONNECTION_INFO_0}
_CONNECTION_INFO_0 = record
coni0_id: DWORD;
end;
{$EXTERNALSYM _CONNECTION_INFO_0}
CONNECTION_INFO_0 = _CONNECTION_INFO_0;
{$EXTERNALSYM CONNECTION_INFO_0}
TConnectionInfo0 = CONNECTION_INFO_0;
PConnectionInfo0 = PCONNECTION_INFO_0;
LPCONNECTION_INFO_1 = ^CONNECTION_INFO_1;
{$EXTERNALSYM LPCONNECTION_INFO_1}
PCONNECTION_INFO_1 = ^CONNECTION_INFO_1;
{$EXTERNALSYM PCONNECTION_INFO_1}
_CONNECTION_INFO_1 = record
coni1_id: DWORD;
coni1_type: DWORD;
coni1_num_opens: DWORD;
coni1_num_users: DWORD;
coni1_time: DWORD;
coni1_username: LMSTR;
coni1_netname: LMSTR;
end;
{$EXTERNALSYM _CONNECTION_INFO_1}
CONNECTION_INFO_1 = _CONNECTION_INFO_1;
{$EXTERNALSYM CONNECTION_INFO_1}
TConnectionInfo1 = CONNECTION_INFO_1;
PConnectionInfo1 = PCONNECTION_INFO_1;
//
// FILE API
//
//
// Function Prototypes - FILE
//
function NetFileClose(servername: LMSTR; fileid: DWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetFileClose}
function NetFileEnum(servername, basepath, username: LMSTR; level: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; entriesread, totalentries, resume_handle: PDWORD_PTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetFileEnum}
function NetFileGetInfo(servername: LMSTR; fileid, level: DWORD; var bufptr: LPBYTE): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetFileGetInfo}
//
// Data Structures - File
//
// File APIs are available at information levels 2 & 3 only. Levels 0 &
// 1 are not supported.
//
type
LPFILE_INFO_2 = ^FILE_INFO_2;
{$EXTERNALSYM LPFILE_INFO_2}
PFILE_INFO_2 = ^FILE_INFO_2;
{$EXTERNALSYM PFILE_INFO_2}
_FILE_INFO_2 = record
fi2_id: DWORD;
end;
{$EXTERNALSYM _FILE_INFO_2}
FILE_INFO_2 = _FILE_INFO_2;
{$EXTERNALSYM FILE_INFO_2}
TFileInfo2 = FILE_INFO_2;
PFileInfo2 = PFILE_INFO_2;
LPFILE_INFO_3 = ^FILE_INFO_3;
{$EXTERNALSYM LPFILE_INFO_3}
PFILE_INFO_3 = ^FILE_INFO_3;
{$EXTERNALSYM PFILE_INFO_3}
_FILE_INFO_3 = record
fi3_id: DWORD;
fi3_permissions: DWORD;
fi3_num_locks: DWORD;
fi3_pathname: LMSTR;
fi3_username: LMSTR;
end;
{$EXTERNALSYM _FILE_INFO_3}
FILE_INFO_3 = _FILE_INFO_3;
{$EXTERNALSYM FILE_INFO_3}
TFileInfo3 = FILE_INFO_3;
PFileInfo3 = PFILE_INFO_3;
//
// Special Values and Constants - File
//
//
// bit values for permissions
//
const
PERM_FILE_READ = $1; // user has read access
{$EXTERNALSYM PERM_FILE_READ}
PERM_FILE_WRITE = $2; // user has write access
{$EXTERNALSYM PERM_FILE_WRITE}
PERM_FILE_CREATE = $4; // user has create access
{$EXTERNALSYM PERM_FILE_CREATE}
implementation
{$IFDEF DYNAMIC_LINK}
var
_NetShareAdd: Pointer;
function NetShareAdd;
begin
GetProcedureAddress(_NetShareAdd, netapi32, 'NetShareAdd');
asm
mov esp, ebp
pop ebp
jmp [_NetShareAdd]
end;
end;
{$ELSE}
function NetShareAdd; external netapi32 name 'NetShareAdd';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_NetShareEnum: Pointer;
function NetShareEnum;
begin
GetProcedureAddress(_NetShareEnum, netapi32, 'NetShareEnum');
asm
mov esp, ebp
pop ebp
jmp [_NetShareEnum]
end;
end;
{$ELSE}
function NetShareEnum; external netapi32 name 'NetShareEnum';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_NetShareEnumSticky: Pointer;
function NetShareEnumSticky;
begin
GetProcedureAddress(_NetShareEnumSticky, netapi32, 'NetShareEnumSticky');
asm
mov esp, ebp
pop ebp
jmp [_NetShareEnumSticky]
end;
end;
{$ELSE}
function NetShareEnumSticky; external netapi32 name 'NetShareEnumSticky';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_NetShareGetInfo: Pointer;
function NetShareGetInfo;
begin
GetProcedureAddress(_NetShareGetInfo, netapi32, 'NetShareGetInfo');
asm
mov esp, ebp
pop ebp
jmp [_NetShareGetInfo]
end;
end;
{$ELSE}
function NetShareGetInfo; external netapi32 name 'NetShareGetInfo';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_NetShareSetInfo: Pointer;
function NetShareSetInfo;
begin
GetProcedureAddress(_NetShareSetInfo, netapi32, 'NetShareSetInfo');
asm
mov esp, ebp
pop ebp
jmp [_NetShareSetInfo]
end;
end;
{$ELSE}
function NetShareSetInfo; external netapi32 name 'NetShareSetInfo';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_NetShareDel: Pointer;
function NetShareDel;
begin
GetProcedureAddress(_NetShareDel, netapi32, 'NetShareDel');
asm
mov esp, ebp
pop ebp
jmp [_NetShareDel]
end;
end;
{$ELSE}
function NetShareDel; external netapi32 name 'NetShareDel';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_NetShareDelSticky: Pointer;
function NetShareDelSticky;
begin
GetProcedureAddress(_NetShareDelSticky, netapi32, 'NetShareDelSticky');
asm
mov esp, ebp
pop ebp
jmp [_NetShareDelSticky]
end;
end;
{$ELSE}
function NetShareDelSticky; external netapi32 name 'NetShareDelSticky';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_NetShareCheck: Pointer;
function NetShareCheck;
begin
GetProcedureAddress(_NetShareCheck, netapi32, 'NetShareCheck');
asm
mov esp, ebp
pop ebp
jmp [_NetShareCheck]
end;
end;
{$ELSE}
function NetShareCheck; external netapi32 name 'NetShareCheck';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_NetSessionEnum: Pointer;
function NetSessionEnum;
begin
GetProcedureAddress(_NetSessionEnum, netapi32, 'NetSessionEnum');
asm
mov esp, ebp
pop ebp
jmp [_NetSessionEnum]
end;
end;
{$ELSE}
function NetSessionEnum; external netapi32 name 'NetSessionEnum';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_NetSessionDel: Pointer;
function NetSessionDel;
begin
GetProcedureAddress(_NetSessionDel, netapi32, 'NetSessionDel');
asm
mov esp, ebp
pop ebp
jmp [_NetSessionDel]
end;
end;
{$ELSE}
function NetSessionDel; external netapi32 name 'NetSessionDel';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_NetSessionGetInfo: Pointer;
function NetSessionGetInfo;
begin
GetProcedureAddress(_NetSessionGetInfo, netapi32, 'NetSessionGetInfo');
asm
mov esp, ebp
pop ebp
jmp [_NetSessionGetInfo]
end;
end;
{$ELSE}
function NetSessionGetInfo; external netapi32 name 'NetSessionGetInfo';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_NetConnectionEnum: Pointer;
function NetConnectionEnum;
begin
GetProcedureAddress(_NetConnectionEnum, netapi32, 'NetConnectionEnum');
asm
mov esp, ebp
pop ebp
jmp [_NetConnectionEnum]
end;
end;
{$ELSE}
function NetConnectionEnum; external netapi32 name 'NetConnectionEnum';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_NetFileClose: Pointer;
function NetFileClose;
begin
GetProcedureAddress(_NetFileClose, netapi32, 'NetFileClose');
asm
mov esp, ebp
pop ebp
jmp [_NetFileClose]
end;
end;
{$ELSE}
function NetFileClose; external netapi32 name 'NetFileClose';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_NetFileEnum: Pointer;
function NetFileEnum;
begin
GetProcedureAddress(_NetFileEnum, netapi32, 'NetFileEnum');
asm
mov esp, ebp
pop ebp
jmp [_NetFileEnum]
end;
end;
{$ELSE}
function NetFileEnum; external netapi32 name 'NetFileEnum';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_NetFileGetInfo: Pointer;
function NetFileGetInfo;
begin
GetProcedureAddress(_NetFileGetInfo, netapi32, 'NetFileGetInfo');
asm
mov esp, ebp
pop ebp
jmp [_NetFileGetInfo]
end;
end;
{$ELSE}
function NetFileGetInfo; external netapi32 name 'NetFileGetInfo';
{$ENDIF DYNAMIC_LINK}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -