📄 jwalmwksta.pas
字号:
{******************************************************************************}
{ }
{ Lan Manager Workstation API interface Unit for Object Pascal }
{ }
{ Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
{ Corporation. All Rights Reserved. }
{ }
{ The original file is: lmwksta.h, released November 2001. The original Pascal }
{ code is: LmWkSta.pas, released Februari 2002. The initial developer of the }
{ Pascal code is Marcel van Brakel (brakelm@chello.nl). }
{ }
{ Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
{ Marcel van Brakel. All Rights Reserved. }
{ }
{ Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
{ }
{ You may retrieve the latest version of this file at the Project JEDI home }
{ page, located at http://delphi-jedi.org or my personal homepage located at }
{ http://members.chello.nl/m.vanbrakel2 }
{ }
{ The contents of this file are used with permission, subject to the Mozilla }
{ Public License Version 1.1 (the "License"); you may not use this file except }
{ in compliance with the License. You may obtain a copy of the License at }
{ http://www.mozilla.org/MPL/MPL-1.1.html }
{ }
{ Software distributed under the License is distributed on an "AS IS" basis, }
{ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
{ the specific language governing rights and limitations under the License. }
{ }
{ Alternatively, the contents of this file may be used under the terms of the }
{ GNU Lesser General Public License (the "LGPL License"), in which case the }
{ provisions of the LGPL License are applicable instead of those above. }
{ If you wish to allow use of your version of this file only under the terms }
{ of the LGPL License and not to allow others to use your version of this file }
{ under the MPL, indicate your decision by deleting the provisions above and }
{ replace them with the notice and other provisions required by the LGPL }
{ License. If you do not delete the provisions above, a recipient may use }
{ your version of this file under either the MPL or the LGPL License. }
{ }
{ For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
{ }
{******************************************************************************}
unit JwaLmWkSta;
{$WEAKPACKAGEUNIT}
{$HPPEMIT ''}
{$HPPEMIT '#include "lmwksta.h"'}
{$HPPEMIT ''}
{$I WINDEFINES.INC}
interface
uses
JwaLmCons, JwaWinType;
//
// Function Prototypes
//
function NetWkstaGetInfo(servername: LMSTR; level: DWORD; var bufptr: LPBYTE): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetWkstaGetInfo}
function NetWkstaSetInfo(servername: LMSTR; level: DWORD; buffer: LPBYTE; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetWkstaSetInfo}
function NetWkstaUserGetInfo(reserved: LMSTR; level: DWORD; var bufptr: LPBYTE): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetWkstaUserGetInfo}
function NetWkstaUserSetInfo(reserved: LMSTR; level: DWORD; buf: LPBYTE; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetWkstaUserSetInfo}
function NetWkstaUserEnum(servername: LMSTR; level: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; entriesread: LPDWORD; totalentries: LPDWORD; resumehandle: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetWkstaUserEnum}
function NetWkstaTransportAdd(servername: LMSTR; level: DWORD; buf: LPBYTE; parm_err: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetWkstaTransportAdd}
function NetWkstaTransportDel(servername: LMSTR; transportname: LMSTR; ucond: DWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetWkstaTransportDel}
function NetWkstaTransportEnum(servername: LMSTR; level: DWORD; var bufptr: LPBYTE; prefmaxlen: DWORD; entriesread: LPDWORD; totalentries: LPDWORD; resumehandle: LPDWORD): NET_API_STATUS; stdcall;
{$EXTERNALSYM NetWkstaTransportEnum}
//
// Data Structures
//
//
// NetWkstaGetInfo and NetWkstaSetInfo
//
//
// NetWkstaGetInfo only. System information - guest access
//
type
LPWKSTA_INFO_100 = ^WKSTA_INFO_100;
{$EXTERNALSYM LPWKSTA_INFO_100}
PWKSTA_INFO_100 = ^WKSTA_INFO_100;
{$EXTERNALSYM PWKSTA_INFO_100}
_WKSTA_INFO_100 = record
wki100_platform_id: DWORD;
wki100_computername: LMSTR;
wki100_langroup: LMSTR;
wki100_ver_major: DWORD;
wki100_ver_minor: DWORD;
end;
{$EXTERNALSYM _WKSTA_INFO_100}
WKSTA_INFO_100 = _WKSTA_INFO_100;
{$EXTERNALSYM WKSTA_INFO_100}
TWkstaInfo100 = WKSTA_INFO_100;
PWkstaInfo100 = PWKSTA_INFO_100;
//
// NetWkstaGetInfo only. System information - user access
//
LPWKSTA_INFO_101 = ^WKSTA_INFO_101;
{$EXTERNALSYM LPWKSTA_INFO_101}
PWKSTA_INFO_101 = ^WKSTA_INFO_101;
{$EXTERNALSYM PWKSTA_INFO_101}
_WKSTA_INFO_101 = record
wki101_platform_id: DWORD;
wki101_computername: LMSTR;
wki101_langroup: LMSTR;
wki101_ver_major: DWORD;
wki101_ver_minor: DWORD;
wki101_lanroot: LMSTR;
end;
{$EXTERNALSYM _WKSTA_INFO_101}
WKSTA_INFO_101 = _WKSTA_INFO_101;
{$EXTERNALSYM WKSTA_INFO_101}
TWkstaInfo101 = WKSTA_INFO_101;
PWkstaInfo101 = PWKSTA_INFO_101;
//
// NetWkstaGetInfo only. System information - admin or operator access
//
LPWKSTA_INFO_102 = ^WKSTA_INFO_102;
{$EXTERNALSYM LPWKSTA_INFO_102}
PWKSTA_INFO_102 = ^WKSTA_INFO_102;
{$EXTERNALSYM PWKSTA_INFO_102}
_WKSTA_INFO_102 = record
wki102_platform_id: DWORD;
wki102_computername: LMSTR;
wki102_langroup: LMSTR;
wki102_ver_major: DWORD;
wki102_ver_minor: DWORD;
wki102_lanroot: LMSTR;
wki102_logged_on_users: DWORD;
end;
{$EXTERNALSYM _WKSTA_INFO_102}
WKSTA_INFO_102 = _WKSTA_INFO_102;
{$EXTERNALSYM WKSTA_INFO_102}
TWkstaInfo102 = WKSTA_INFO_102;
PWkstaInfo102 = PWKSTA_INFO_102;
//
// Down-level NetWkstaGetInfo and NetWkstaSetInfo.
//
// DOS specific workstation information -
// admin or domain operator access
//
LPWKSTA_INFO_302 = ^WKSTA_INFO_302;
{$EXTERNALSYM LPWKSTA_INFO_302}
PWKSTA_INFO_302 = ^WKSTA_INFO_302;
{$EXTERNALSYM PWKSTA_INFO_302}
_WKSTA_INFO_302 = record
wki302_char_wait: DWORD;
wki302_collection_time: DWORD;
wki302_maximum_collection_count: DWORD;
wki302_keep_conn: DWORD;
wki302_keep_search: DWORD;
wki302_max_cmds: DWORD;
wki302_num_work_buf: DWORD;
wki302_siz_work_buf: DWORD;
wki302_max_wrk_cache: DWORD;
wki302_sess_timeout: DWORD;
wki302_siz_error: DWORD;
wki302_num_alerts: DWORD;
wki302_num_services: DWORD;
wki302_errlog_sz: DWORD;
wki302_print_buf_time: DWORD;
wki302_num_char_buf: DWORD;
wki302_siz_char_buf: DWORD;
wki302_wrk_heuristics: LMSTR;
wki302_mailslots: DWORD;
wki302_num_dgram_buf: DWORD;
end;
{$EXTERNALSYM _WKSTA_INFO_302}
WKSTA_INFO_302 = _WKSTA_INFO_302;
{$EXTERNALSYM WKSTA_INFO_302}
TWkstaInfo302 = WKSTA_INFO_302;
PWkstaInfo302 = PWKSTA_INFO_302;
//
// Down-level NetWkstaGetInfo and NetWkstaSetInfo
//
// OS/2 specific workstation information -
// admin or domain operator access
//
LPWKSTA_INFO_402 = ^WKSTA_INFO_402;
{$EXTERNALSYM LPWKSTA_INFO_402}
PWKSTA_INFO_402 = ^WKSTA_INFO_402;
{$EXTERNALSYM PWKSTA_INFO_402}
_WKSTA_INFO_402 = record
wki402_char_wait: DWORD;
wki402_collection_time: DWORD;
wki402_maximum_collection_count: DWORD;
wki402_keep_conn: DWORD;
wki402_keep_search: DWORD;
wki402_max_cmds: DWORD;
wki402_num_work_buf: DWORD;
wki402_siz_work_buf: DWORD;
wki402_max_wrk_cache: DWORD;
wki402_sess_timeout: DWORD;
wki402_siz_error: DWORD;
wki402_num_alerts: DWORD;
wki402_num_services: DWORD;
wki402_errlog_sz: DWORD;
wki402_print_buf_time: DWORD;
wki402_num_char_buf: DWORD;
wki402_siz_char_buf: DWORD;
wki402_wrk_heuristics: LMSTR;
wki402_mailslots: DWORD;
wki402_num_dgram_buf: DWORD;
wki402_max_threads: DWORD;
end;
{$EXTERNALSYM _WKSTA_INFO_402}
WKSTA_INFO_402 = _WKSTA_INFO_402;
{$EXTERNALSYM WKSTA_INFO_402}
TWkstaInfo402 = WKSTA_INFO_402;
PWkstaInfo402 = PWKSTA_INFO_402;
//
// Same-level NetWkstaGetInfo and NetWkstaSetInfo.
//
// NT specific workstation information -
// admin or domain operator access
//
LPWKSTA_INFO_502 = ^WKSTA_INFO_502;
{$EXTERNALSYM LPWKSTA_INFO_502}
PWKSTA_INFO_502 = ^WKSTA_INFO_502;
{$EXTERNALSYM PWKSTA_INFO_502}
_WKSTA_INFO_502 = record
wki502_char_wait: DWORD;
wki502_collection_time: DWORD;
wki502_maximum_collection_count: DWORD;
wki502_keep_conn: DWORD;
wki502_max_cmds: DWORD;
wki502_sess_timeout: DWORD;
wki502_siz_char_buf: DWORD;
wki502_max_threads: DWORD;
wki502_lock_quota: DWORD;
wki502_lock_increment: DWORD;
wki502_lock_maximum: DWORD;
wki502_pipe_increment: DWORD;
wki502_pipe_maximum: DWORD;
wki502_cache_file_timeout: DWORD;
wki502_dormant_file_limit: DWORD;
wki502_read_ahead_throughput: DWORD;
wki502_num_mailslot_buffers: DWORD;
wki502_num_srv_announce_buffers: DWORD;
wki502_max_illegal_datagram_events: DWORD;
wki502_illegal_datagram_event_reset_frequency: DWORD;
wki502_log_election_packets: BOOL;
wki502_use_opportunistic_locking: BOOL;
wki502_use_unlock_behind: BOOL;
wki502_use_close_behind: BOOL;
wki502_buf_named_pipes: BOOL;
wki502_use_lock_read_unlock: BOOL;
wki502_utilize_nt_caching: BOOL;
wki502_use_raw_read: BOOL;
wki502_use_raw_write: BOOL;
wki502_use_write_raw_data: BOOL;
wki502_use_encryption: BOOL;
wki502_buf_files_deny_write: BOOL;
wki502_buf_read_only_files: BOOL;
wki502_force_core_create_mode: BOOL;
wki502_use_512_byte_max_transfer: BOOL;
end;
{$EXTERNALSYM _WKSTA_INFO_502}
WKSTA_INFO_502 = _WKSTA_INFO_502;
{$EXTERNALSYM WKSTA_INFO_502}
TWkstaInfo502 = WKSTA_INFO_502;
PWkstaInfo502 = PWKSTA_INFO_502;
//
// The following info-levels are only valid for NetWkstaSetInfo
//
//
// The following levels are supported on down-level systems (LAN Man 2.x)
// as well as NT systems:
//
LPWKSTA_INFO_1010 = ^WKSTA_INFO_1010;
{$EXTERNALSYM LPWKSTA_INFO_1010}
PWKSTA_INFO_1010 = ^WKSTA_INFO_1010;
{$EXTERNALSYM PWKSTA_INFO_1010}
_WKSTA_INFO_1010 = record
wki1010_char_wait: DWORD;
end;
{$EXTERNALSYM _WKSTA_INFO_1010}
WKSTA_INFO_1010 = _WKSTA_INFO_1010;
{$EXTERNALSYM WKSTA_INFO_1010}
TWkstaInfo1010 = WKSTA_INFO_1010;
PWkstaInfo1010 = PWKSTA_INFO_1010;
LPWKSTA_INFO_1011 = ^WKSTA_INFO_1011;
{$EXTERNALSYM LPWKSTA_INFO_1011}
PWKSTA_INFO_1011 = ^WKSTA_INFO_1011;
{$EXTERNALSYM PWKSTA_INFO_1011}
_WKSTA_INFO_1011 = record
wki1011_collection_time: DWORD;
end;
{$EXTERNALSYM _WKSTA_INFO_1011}
WKSTA_INFO_1011 = _WKSTA_INFO_1011;
{$EXTERNALSYM WKSTA_INFO_1011}
TWkstaInfo1011 = WKSTA_INFO_1011;
PWkstaInfo1011 = PWKSTA_INFO_1011;
LPWKSTA_INFO_1012 = ^WKSTA_INFO_1012;
{$EXTERNALSYM LPWKSTA_INFO_1012}
PWKSTA_INFO_1012 = ^WKSTA_INFO_1012;
{$EXTERNALSYM PWKSTA_INFO_1012}
_WKSTA_INFO_1012 = record
wki1012_maximum_collection_count: DWORD;
end;
{$EXTERNALSYM _WKSTA_INFO_1012}
WKSTA_INFO_1012 = _WKSTA_INFO_1012;
{$EXTERNALSYM WKSTA_INFO_1012}
TWkstaInfo1012 = WKSTA_INFO_1012;
PWkstaInfo1012 = PWKSTA_INFO_1012;
//
// The following level are supported on down-level systems (LAN Man 2.x)
// only:
//
LPWKSTA_INFO_1027 = ^WKSTA_INFO_1027;
{$EXTERNALSYM LPWKSTA_INFO_1027}
PWKSTA_INFO_1027 = ^WKSTA_INFO_1027;
{$EXTERNALSYM PWKSTA_INFO_1027}
_WKSTA_INFO_1027 = record
wki1027_errlog_sz: DWORD;
end;
{$EXTERNALSYM _WKSTA_INFO_1027}
WKSTA_INFO_1027 = _WKSTA_INFO_1027;
{$EXTERNALSYM WKSTA_INFO_1027}
TWkstaInfo1027 = WKSTA_INFO_1027;
PWkstaInfo1027 = PWKSTA_INFO_1027;
LPWKSTA_INFO_1028 = ^WKSTA_INFO_1028;
{$EXTERNALSYM LPWKSTA_INFO_1028}
PWKSTA_INFO_1028 = ^WKSTA_INFO_1028;
{$EXTERNALSYM PWKSTA_INFO_1028}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -