📄 jwaws2spi.txt
字号:
(*
* The name space service provider procedure table.
*)
type
_NSP_ROUTINE = record
(* Structure version information: *)
cbSize: DWORD;
dwMajorVersion: DWORD;
dwMinorVersion: DWORD;
(* Procedure-pointer table: *)
NSPCleanup: LPNSPCLEANUP;
NSPLookupServiceBegin: LPNSPLOOKUPSERVICEBEGIN;
NSPLookupServiceNext: LPNSPLOOKUPSERVICENEXT;
NSPLookupServiceEnd: LPNSPLOOKUPSERVICEEND;
NSPSetService: LPNSPSETSERVICE;
NSPInstallServiceClass: LPNSPINSTALLSERVICECLASS;
NSPRemoveServiceClass: LPNSPREMOVESERVICECLASS;
NSPGetServiceClassInfo: LPNSPGETSERVICECLASSINFO;
// These APIs were added later, so must appear here
// to keep the pointers in the structure in order.
// Namespaces unaware of these APIs will set cbSize
// to match the size of FIELD_OFFSET(NSP_ROUTINE, NSPIoctl).
NSPIoctl: LPNSPIOCTL;
end;
{$EXTERNALSYM _NSP_ROUTINE}
NSP_ROUTINE = _NSP_ROUTINE;
{$EXTERNALSYM NSP_ROUTINE}
LPNSP_ROUTINE = ^NSP_ROUTINE;
{$EXTERNALSYM LPNSP_ROUTINE}
TNspRoutines = NSP_ROUTINE;
PNspRoutines = LPNSP_ROUTINE;
(*
* Startup procedures.
*)
//function NSPStartup(const lpProviderId: TGUID; lpnspRoutines: LPNSP_ROUTINE): Integer; stdcall;
//{$EXTERNALSYM NSPStartup}
type
LPNSPSTARTUP = function(const lpProviderId: TGUID; lpnspRoutines: LPNSP_ROUTINE): Integer; stdcall;
{$EXTERNALSYM LPNSPSTARTUP}
TNspStartup = LPNSPSTARTUP;
implementation
const
ws2_32 = 'ws2_32.dll';
qosname = 'qosname.dll';
{$IFDEF DYNAMIC_LINK}
var
_WSCEnumProtocols: Pointer;
function WSCEnumProtocols;
begin
GetProcedureAddress(_WSCEnumProtocols, ws2_32, 'WSCEnumProtocols');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCEnumProtocols]
end;
end;
{$IFDEF _WIN64}
var
_WSCEnumProtocols32: Pointer;
function WSCEnumProtocols32;
begin
GetProcedureAddress(_WSCEnumProtocols32, ws2_32, 'WSCEnumProtocols32');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCEnumProtocols32]
end;
end;
{$ENDIF _WIN64}
var
_WSCDeinstallProvider: Pointer;
function WSCDeinstallProvider;
begin
GetProcedureAddress(_WSCDeinstallProvider, ws2_32, 'WSCDeinstallProvider');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCDeinstallProvider]
end;
end;
{$IFDEF _WIN64}
var
_WSCDeinstallProvider32: Pointer;
function WSCDeinstallProvider32;
begin
GetProcedureAddress(_WSCDeinstallProvider32, ws2_32, 'WSCDeinstallProvider32');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCDeinstallProvider32]
end;
end;
{$ENDIF _WIN64}
var
_WSCInstallProvider: Pointer;
function WSCInstallProvider;
begin
GetProcedureAddress(_WSCInstallProvider, ws2_32, 'WSCInstallProvider');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCInstallProvider]
end;
end;
{$IFDEF _WIN64}
var
_WSCInstallProvider64_32: Pointer;
function WSCInstallProvider64_32;
begin
GetProcedureAddress(_WSCInstallProvider64_32, ws2_32, 'WSCInstallProvider64_32');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCInstallProvider64_32]
end;
end;
{$ENDIF _WIN64}
var
_WSCGetProviderPath: Pointer;
function WSCGetProviderPath;
begin
GetProcedureAddress(_WSCGetProviderPath, ws2_32, 'WSCGetProviderPath');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCGetProviderPath]
end;
end;
{$IFDEF _WIN64}
var
_WSCGetProviderPath32: Pointer;
function WSCGetProviderPath32;
begin
GetProcedureAddress(_WSCGetProviderPath32, ws2_32, 'WSCGetProviderPath32');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCGetProviderPath32]
end;
end;
{$ENDIF _WIN64}
var
_WSCUpdateProvider: Pointer;
function WSCUpdateProvider;
begin
GetProcedureAddress(_WSCUpdateProvider, ws2_32, 'WSCUpdateProvider');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCUpdateProvider]
end;
end;
{$IFDEF _WIN64}
var
_WSCUpdateProvider32: Pointer;
function WSCUpdateProvider32;
begin
GetProcedureAddress(_WSCUpdateProvider32, ws2_32, 'WSCUpdateProvider32');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCUpdateProvider32]
end;
end;
{$ENDIF _WIN64}
var
_WSCInstallQOSTemplate: Pointer;
function WSCInstallQOSTemplate;
begin
GetProcedureAddress(_WSCInstallQOSTemplate, JwaWs2spi.qosname, 'WSCInstallQOSTemplate');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCInstallQOSTemplate]
end;
end;
var
_WSCRemoveQOSTemplate: Pointer;
function WSCRemoveQOSTemplate;
begin
GetProcedureAddress(_WSCRemoveQOSTemplate, JwaWs2spi.qosname, 'WSCRemoveQOSTemplate');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCRemoveQOSTemplate]
end;
end;
{$IFDEF _WIN64}
var
_WSCEnumNameSpaceProviders32: Pointer;
function WSCEnumNameSpaceProviders32;
begin
GetProcedureAddress(_WSCEnumNameSpaceProviders32, ws2_32, 'WSCEnumNameSpaceProviders32');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCEnumNameSpaceProviders32]
end;
end;
{$ENDIF _WIN64}
var
_WSCInstallNameSpace: Pointer;
function WSCInstallNameSpace;
begin
GetProcedureAddress(_WSCInstallNameSpace, ws2_32, 'WSCInstallNameSpace');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCInstallNameSpace]
end;
end;
{$IFDEF _WIN64}
var
_WSCInstallNameSpace32: Pointer;
function WSCInstallNameSpace32;
begin
GetProcedureAddress(_WSCInstallNameSpace32, ws2_32, 'WSCInstallNameSpace32');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCInstallNameSpace32]
end;
end;
{$ENDIF _WIN64}
var
_WSCUnInstallNameSpace: Pointer;
function WSCUnInstallNameSpace;
begin
GetProcedureAddress(_WSCUnInstallNameSpace, ws2_32, 'WSCUnInstallNameSpace');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCUnInstallNameSpace]
end;
end;
{$IFDEF _WIN64}
var
_WSCUnInstallNameSpace32: Pointer;
function WSCUnInstallNameSpace32;
begin
GetProcedureAddress(_WSCUnInstallNameSpace32, ws2_32, 'WSCUnInstallNameSpace32');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCUnInstallNameSpace32]
end;
end;
{$ENDIF _WIN64}
var
_WSCEnableNSProvider: Pointer;
function WSCEnableNSProvider;
begin
GetProcedureAddress(_WSCEnableNSProvider, ws2_32, 'WSCEnableNSProvider');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCEnableNSProvider]
end;
end;
{$IFDEF _WIN64}
var
_WSCEnableNSProvider32: Pointer;
function WSCEnableNSProvider32;
begin
GetProcedureAddress(_WSCEnableNSProvider32, ws2_32, 'WSCEnableNSProvider32');
asm
MOV ESP, EBP
POP EBP
JMP [_WSCEnableNSProvider32]
end;
end;
{$ENDIF _WIN64}
{$ELSE}
function WSCEnumProtocols; external ws2_32 name 'WSCEnumProtocols';
function WSCDeinstallProvider; external ws2_32 name 'WSCDeinstallProvider';
function WSCInstallProvider; external ws2_32 name 'WSCInstallProvider';
function WSCGetProviderPath; external ws2_32 name 'WSCGetProviderPath';
function WSCUpdateProvider; external ws2_32 name 'WSCUpdateProvider';
function WSCInstallQOSTemplate; external qosname name 'WSCInstallQOSTemplate';
function WSCRemoveQOSTemplate; external qosname name 'WSCRemoveQOSTemplate';
function WSCInstallNameSpace; external ws2_32 name 'WSCInstallNameSpace';
function WSCUnInstallNameSpace; external ws2_32 name 'WSCUnInstallNameSpace';
function WSCEnableNSProvider; external ws2_32 name 'WSCEnableNSProvider';
{$IFDEF _WIN64}
function WSCEnumProtocols32; external ws2_32 name 'WSCEnumProtocols32';
function WSCDeinstallProvider32; external ws2_32 name 'WSCDeinstallProvider32';
function WSCInstallProvider64_32; external ws2_32 name 'WSCInstallProvider64_32';
function WSCGetProviderPath32; external ws2_32 name 'WSCGetProviderPath32';
function WSCUpdateProvider32; external ws2_32 name 'WSCUpdateProvider32';
function WSCEnumNameSpaceProviders32; external ws2_32 name 'WSCEnumNameSpaceProviders32';
function WSCInstallNameSpace32; external ws2_32 name 'WSCInstallNameSpace32';
function WSCUnInstallNameSpace32; external ws2_32 name 'WSCUnInstallNameSpace32';
function WSCEnableNSProvider32; external ws2_32 name 'WSCEnableNSProvider32';
{$ENDIF _WIN64}
{$ENDIF DYNAMIC_LINK}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -