⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jwaws2spi.txt

📁 netapi中 jawwinsock2.pas文件源码
💻 TXT
📖 第 1 页 / 共 3 页
字号:
(*
 * 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 + -