📄 jwalmaccess.pas
字号:
{$EXTERNALSYM LOCALGROUP_MEMBERS_INFO_2}
TLocalGroupMembersInfo2 = LOCALGROUP_MEMBERS_INFO_2;
PLocalGroupMembersInfo2 = PLOCALGROUP_MEMBERS_INFO_2;
LPLOCALGROUP_MEMBERS_INFO_3 = ^LOCALGROUP_MEMBERS_INFO_3;
{$EXTERNALSYM LPLOCALGROUP_MEMBERS_INFO_3}
PLOCALGROUP_MEMBERS_INFO_3 = ^LOCALGROUP_MEMBERS_INFO_3;
{$EXTERNALSYM PLOCALGROUP_MEMBERS_INFO_3}
_LOCALGROUP_MEMBERS_INFO_3 = record
lgrmi3_domainandname: LPWSTR;
end;
{$EXTERNALSYM _LOCALGROUP_MEMBERS_INFO_3}
LOCALGROUP_MEMBERS_INFO_3 = _LOCALGROUP_MEMBERS_INFO_3;
{$EXTERNALSYM LOCALGROUP_MEMBERS_INFO_3}
TLocalGroupMembersInfo3 = LOCALGROUP_MEMBERS_INFO_3;
PLocalGroupMembersInfo3 = PLOCALGROUP_MEMBERS_INFO_3;
LPLOCALGROUP_USERS_INFO_0 = ^LOCALGROUP_USERS_INFO_0;
{$EXTERNALSYM LPLOCALGROUP_USERS_INFO_0}
PLOCALGROUP_USERS_INFO_0 = ^LOCALGROUP_USERS_INFO_0;
{$EXTERNALSYM PLOCALGROUP_USERS_INFO_0}
_LOCALGROUP_USERS_INFO_0 = record
lgrui0_name: LPWSTR;
end;
{$EXTERNALSYM _LOCALGROUP_USERS_INFO_0}
LOCALGROUP_USERS_INFO_0 = _LOCALGROUP_USERS_INFO_0;
{$EXTERNALSYM LOCALGROUP_USERS_INFO_0}
TLocalGroupUsersInfo0 = LOCALGROUP_USERS_INFO_0;
PLocalGroupUsersInfo0 = PLOCALGROUP_USERS_INFO_0;
const
LOCALGROUP_NAME_PARMNUM = 1;
{$EXTERNALSYM LOCALGROUP_NAME_PARMNUM}
LOCALGROUP_COMMENT_PARMNUM = 2;
{$EXTERNALSYM LOCALGROUP_COMMENT_PARMNUM}
//
// Display Information APIs
//
function NetQueryDisplayInformation(ServerName: LPCWSTR; Level, Index, EntriesRequested, PreferredMaximumLength: DWORD; ReturnedEntryCount: LPDWORD; var SortedBuffer: PVOID): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetQueryDisplayInformation}
function NetGetDisplayInformationIndex(ServerName: LPCWSTR; Level: DWORD; Prefix: LPCWSTR; Index: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetGetDisplayInformationIndex}
//
// QueryDisplayInformation levels
type
PNET_DISPLAY_USER = ^NET_DISPLAY_USER;
{$EXTERNALSYM PNET_DISPLAY_USER}
_NET_DISPLAY_USER = record
usri1_name: LPWSTR;
usri1_comment: LPWSTR;
usri1_flags: DWORD;
usri1_full_name: LPWSTR;
usri1_user_id: DWORD;
usri1_next_index: DWORD;
end;
{$EXTERNALSYM _NET_DISPLAY_USER}
NET_DISPLAY_USER = _NET_DISPLAY_USER;
{$EXTERNALSYM NET_DISPLAY_USER}
TNetDisplayUser = NET_DISPLAY_USER;
PNetDisplayUser = PNET_DISPLAY_USER;
PNET_DISPLAY_MACHINE = ^NET_DISPLAY_MACHINE;
{$EXTERNALSYM PNET_DISPLAY_MACHINE}
_NET_DISPLAY_MACHINE = record
usri2_name: LPWSTR;
usri2_comment: LPWSTR;
usri2_flags: DWORD;
usri2_user_id: DWORD;
usri2_next_index: DWORD;
end;
{$EXTERNALSYM _NET_DISPLAY_MACHINE}
NET_DISPLAY_MACHINE = _NET_DISPLAY_MACHINE;
{$EXTERNALSYM NET_DISPLAY_MACHINE}
TNetDisplayMachine = NET_DISPLAY_MACHINE;
PNetDisplayMachine = PNET_DISPLAY_MACHINE;
PNET_DISPLAY_GROUP = ^NET_DISPLAY_GROUP;
{$EXTERNALSYM PNET_DISPLAY_GROUP}
_NET_DISPLAY_GROUP = record
grpi3_name: LPWSTR;
grpi3_comment: LPWSTR;
grpi3_group_id: DWORD;
grpi3_attributes: DWORD;
grpi3_next_index: DWORD;
end;
{$EXTERNALSYM _NET_DISPLAY_GROUP}
NET_DISPLAY_GROUP = _NET_DISPLAY_GROUP;
{$EXTERNALSYM NET_DISPLAY_GROUP}
TNetDisplayGroup = NET_DISPLAY_GROUP;
PNetDisplayGroup = PNET_DISPLAY_GROUP;
//
// Access Class
//
//
// Function Prototypes - Access
//
//
// The NetAccess APIs are only available to downlevel
//
//#define NetAccessAdd RxNetAccessAdd
function NetAccessAdd(servername: LPCWSTR; level: DWORD; buf: LPBYTE; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetAccessAdd}
//#define NetAccessEnum RxNetAccessEnum
function NetAccessEnum(servername, BasePath: LPCWSTR; Recursive, level: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; entriesread, totalentries, resume_handle: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetAccessEnum}
//#define NetAccessGetInfo RxNetAccessGetInfo
function NetAccessGetInfo(servername, resource: LPCWSTR; level: DWORD; var bufptr: LPBYTE): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetAccessGetInfo}
//#define NetAccessSetInfo RxNetAccessSetInfo
function NetAccessSetInfo(servername, resource: LPCWSTR; level: DWORD; buf: LPBYTE; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetAccessSetInfo}
//#define NetAccessDel RxNetAccessDel
function NetAccessDel(servername: LPCWSTR; resource: LPCWSTR): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetAccessDel}
//#define NetAccessGetUserPerms RxNetAccessGetUserPerms
function NetAccessGetUserPerms(servername, UGname, resource: LPCWSTR; Perms: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetAccessGetUserPerms}
//
// Data Structures - Access
//
type
LPACCESS_INFO_0 = ^ACCESS_INFO_0;
{$EXTERNALSYM LPACCESS_INFO_0}
PACCESS_INFO_0 = ^ACCESS_INFO_0;
{$EXTERNALSYM PACCESS_INFO_0}
_ACCESS_INFO_0 = record
acc0_resource_name: LPWSTR;
end;
{$EXTERNALSYM _ACCESS_INFO_0}
ACCESS_INFO_0 = _ACCESS_INFO_0;
{$EXTERNALSYM ACCESS_INFO_0}
TAccessInfo0 = ACCESS_INFO_0;
PAccessInfo0 = PACCESS_INFO_0;
LPACCESS_INFO_1 = ^ACCESS_INFO_1;
{$EXTERNALSYM LPACCESS_INFO_1}
PACCESS_INFO_1 = ^ACCESS_INFO_1;
{$EXTERNALSYM PACCESS_INFO_1}
_ACCESS_INFO_1 = record
acc1_resource_name: LPWSTR;
acc1_attr: DWORD;
acc1_count: DWORD;
end;
{$EXTERNALSYM _ACCESS_INFO_1}
ACCESS_INFO_1 = _ACCESS_INFO_1;
{$EXTERNALSYM ACCESS_INFO_1}
TAccessInfo1 = ACCESS_INFO_1;
PAccessInfo1 = PACCESS_INFO_1;
LPACCESS_INFO_1002 = ^ACCESS_INFO_1002;
{$EXTERNALSYM LPACCESS_INFO_1002}
PACCESS_INFO_1002 = ^ACCESS_INFO_1002;
{$EXTERNALSYM PACCESS_INFO_1002}
_ACCESS_INFO_1002 = record
acc1002_attr: DWORD;
end;
{$EXTERNALSYM _ACCESS_INFO_1002}
ACCESS_INFO_1002 = _ACCESS_INFO_1002;
{$EXTERNALSYM ACCESS_INFO_1002}
TAccessInfo1002 = ACCESS_INFO_1002;
PAccessInfo1002 = PACCESS_INFO_1002;
LPACCESS_LIST = ^ACCESS_LIST;
{$EXTERNALSYM LPACCESS_LIST}
PACCESS_LIST = ^ACCESS_LIST;
{$EXTERNALSYM PACCESS_LIST}
_ACCESS_LIST = record
acl_ugname: LPWSTR;
acl_access: DWORD;
end;
{$EXTERNALSYM _ACCESS_LIST}
ACCESS_LIST = _ACCESS_LIST;
{$EXTERNALSYM ACCESS_LIST}
TAccessList = ACCESS_LIST;
PAccessList = PACCESS_LIST;
//
// Special Values and Constants - Access
//
//
// Maximum number of permission entries for each resource.
//
const
MAXPERMENTRIES = 64;
{$EXTERNALSYM MAXPERMENTRIES}
//
// Bit values for the access permissions. ACCESS_ALL is a handy
// way to specify maximum permissions. These are used in
// acl_access field of access_list structures.
//
ACCESS_READ = $01;
{$EXTERNALSYM ACCESS_READ}
ACCESS_WRITE = $02;
{$EXTERNALSYM ACCESS_WRITE}
ACCESS_CREATE = $04;
{$EXTERNALSYM ACCESS_CREATE}
ACCESS_EXEC = $08;
{$EXTERNALSYM ACCESS_EXEC}
ACCESS_DELETE = $10;
{$EXTERNALSYM ACCESS_DELETE}
ACCESS_ATRIB = $20;
{$EXTERNALSYM ACCESS_ATRIB}
ACCESS_PERM = $40;
{$EXTERNALSYM ACCESS_PERM}
ACCESS_GROUP = $8000;
{$EXTERNALSYM ACCESS_GROUP}
ACCESS_NONE = 0;
{$EXTERNALSYM ACCESS_NONE}
ACCESS_ALL = (ACCESS_READ or ACCESS_WRITE or ACCESS_CREATE or ACCESS_EXEC or ACCESS_DELETE or ACCESS_ATRIB or ACCESS_PERM);
{$EXTERNALSYM ACCESS_ALL}
//
// Bit values for the acc1_attr field of the ACCESS_INFO_1 structure.
//
ACCESS_AUDIT = $1;
{$EXTERNALSYM ACCESS_AUDIT}
ACCESS_SUCCESS_OPEN = $10;
{$EXTERNALSYM ACCESS_SUCCESS_OPEN}
ACCESS_SUCCESS_WRITE = $20;
{$EXTERNALSYM ACCESS_SUCCESS_WRITE}
ACCESS_SUCCESS_DELETE = $40;
{$EXTERNALSYM ACCESS_SUCCESS_DELETE}
ACCESS_SUCCESS_ACL = $80;
{$EXTERNALSYM ACCESS_SUCCESS_ACL}
ACCESS_SUCCESS_MASK = $F0;
{$EXTERNALSYM ACCESS_SUCCESS_MASK}
ACCESS_FAIL_OPEN = $100;
{$EXTERNALSYM ACCESS_FAIL_OPEN}
ACCESS_FAIL_WRITE = $200;
{$EXTERNALSYM ACCESS_FAIL_WRITE}
ACCESS_FAIL_DELETE = $400;
{$EXTERNALSYM ACCESS_FAIL_DELETE}
ACCESS_FAIL_ACL = $800;
{$EXTERNALSYM ACCESS_FAIL_ACL}
ACCESS_FAIL_MASK = $F00;
{$EXTERNALSYM ACCESS_FAIL_MASK}
ACCESS_FAIL_SHIFT = 4;
{$EXTERNALSYM ACCESS_FAIL_SHIFT}
//
// Parmnum value for NetAccessSetInfo.
//
ACCESS_RESOURCE_NAME_PARMNUM = 1;
{$EXTERNALSYM ACCESS_RESOURCE_NAME_PARMNUM}
ACCESS_ATTR_PARMNUM = 2;
{$EXTERNALSYM ACCESS_ATTR_PARMNUM}
ACCESS_COUNT_PARMNUM = 3;
{$EXTERNALSYM ACCESS_COUNT_PARMNUM}
ACCESS_ACCESS_LIST_PARMNUM = 4;
{$EXTERNALSYM ACCESS_ACCESS_LIST_PARMNUM}
//
// the new infolevel counterparts of the old info level + parmnum
//
ACCESS_RESOURCE_NAME_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + ACCESS_RESOURCE_NAME_PARMNUM);
{$EXTERNALSYM ACCESS_RESOURCE_NAME_INFOLEVEL}
ACCESS_ATTR_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + ACCESS_ATTR_PARMNUM);
{$EXTERNALSYM ACCESS_ATTR_INFOLEVEL}
ACCESS_COUNT_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + ACCESS_COUNT_PARMNUM);
{$EXTERNALSYM ACCESS_COUNT_INFOLEVEL}
ACCESS_ACCESS_LIST_INFOLEVEL = (PARMNUM_BASE_INFOLEVEL + ACCESS_ACCESS_LIST_PARMNUM);
{$EXTERNALSYM ACCESS_ACCESS_LIST_INFOLEVEL}
//
// ACCESS_LETTERS defines a letter for each bit position in
// the acl_access field of struct access_list. Note that some
// bits have a corresponding letter of ' ' (space).
//
ACCESS_LETTERS = 'RWCXDAP ';
{$EXTERNALSYM ACCESS_LETTERS}
// ********************************
//
// Password Checking API structures
//
// ********************************
//
// What kind of password checking is to be performed?
// NetValidateAuthentication : Check if the authentication can be done
// NetValidatePasswordChange: Check if the password can be changed
// NetValidatePasswordReset: Reset the password to the given value
//
type
_NET_VALIDATE_PASSWORD_TYPE = (
NetValidateFiller0,
NetValidateAuthentication,
NetValidatePasswordChange,
NetValidatePasswordReset);
{$EXTERNALSYM _NET_VALIDATE_PASSWORD_TYPE}
NET_VALIDATE_PASSWORD_TYPE = _NET_VALIDATE_PASSWORD_TYPE;
{$EXTERNALSYM NET_VALIDATE_PASSWORD_TYPE}
PNET_VALIDATE_PASSWORD_TYPE = ^NET_VALIDATE_PASSWORD_TYPE;
{$EXTERNALSYM PNET_VALIDATE_PASSWORD_TYPE}
TNetValidatePasswordType = NET_VALIDATE_PASSWORD_TYPE;
PNetValidatePasswordType = PNET_VALIDATE_PASSWORD_TYPE;
//
// Structure to keep the password hash
//
_NET_VALIDATE_PASSWORD_HASH = record
Length: ULONG;
Hash: LPBYTE;
end;
{$EXTERNALSYM _NET_VALIDATE_PASSWORD_HASH}
NET_VALIDATE_PASSWORD_HASH = _NET_VALIDATE_PASSWORD_HASH;
{$EXTERNALSYM NET_VALIDATE_PASSWORD_HASH}
PNET_VALIDATE_PASSWORD_HASH = ^NET_VALIDATE_PASSWORD_HASH;
{$EXTERNALSYM PNET_VALIDATE_PASSWORD_HASH}
TNetValidatePasswordHash = NET_VALIDATE_PASSWORD_HASH;
PNetValidatePasswordHash = PNET_VALIDATE_PASSWORD_HASH;
// To be used with PresentFields member of NET_VALIDATE_PERSISTED_FIELDS
const
NET_VALIDATE_PASSWORD_LAST_SET = $00000001;
{$EXTERNALSYM NET_VALIDATE_PASSWORD_LAST_SET}
NET_VALIDATE_BAD_PASSWORD_TIME = $00000002;
{$EXTERNALSYM NET_VALIDATE_BAD_PASSWORD_TIME}
NET_VALIDATE_LOCKOUT_TIME = $00000004;
{$EXTERNALSYM NET_VALIDATE_LOCKOUT_TIME}
NET_VALIDATE_BAD_PASSWORD_COUNT = $00000008;
{$EXTERNALSYM NET_VALIDATE_BAD_PASSWORD_COUNT}
NET_VALIDATE_PASSWORD_HISTORY_LENGTH = $00000010;
{$EXTERNALSYM NET_VALIDATE_PASSWORD_HISTORY_LENGTH}
NET_VALIDATE_PASSWORD_HISTORY = $00000020;
{$EXTERNALSYM NET_VALIDATE_PASSWORD_HISTORY}
//#if !defined(_WINBASE_) && !defined(_FILETIME_)
//#define _FILETIME_
//typedef struct _FILETIME
//{/
// DWORD dwLowDateTime;
// DWORD dwHighDateTime;
//} FILETIME, FAR * LPFILETIME, *PFILETIME;
//#
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -