请输入您要查询的百科知识:

 

词条 WlxNegotiate
释义

函数介绍

自建的替换GINA必须实现WlxNegotiate函数,它是Winlogon调用的第一个GINA函数。WlxNegotiate允许GINA确认是否支持目前安装的Winlogon版本。

注:Windows Vista忽略GINA动态链接库(Vista及以后版本参考ICredentialProvider)

 语法

BOOL WlxNegotiate(

__in   DWORD dwWinLogonVersion,

__out  PDWORD pdwDllVersion

);

 参数

dwWinLogonVersion [in]

指定了将与GINA交互的Winlogon版本

pdwDllVersion [out]

指明GINA支持的Winlogon版本。这个值也被Winlogon用来决定传递哪个分发表(dispatch table)给接下来的WlxInitialize函数。这个值不能比dwWinLogonVersion的值大。

返回值

如果dwWinLogonVersion表示的Winlogon版本大于或等于返回的pdwDllVersion值,函数返回TRUE,Winlogon将继续初始化。

如果dwWinLogonVersion 小于pdwDllVersion,函数返回FALSE,Winlogon终止,系统不会启动。

附注

调用WlxNegotiate之前,Winlogon设置桌面状态,于是当前桌面为Winlogon桌面;Winlogon设置工作站状态,于是桌面是锁定的。

参数中的版本数宏定义所代表的Windows版本:

GINA版本 对应的Windows版本

WLX_VERSION_1_0 Windows NT 3.5.0

WLX_VERSION_1_1 Windows NT 3.5.1

WLX_VERSION_1_2 Windows NT 4.0

WLX_VERSION_1_3 Windows 2000

WLX_VERSION_1_4 Windows 2003/XP

需求

支持的最低客户机 Windows 2000 Professional

支持的最低服务器 Windows 2000 Server

最终支持客户机 Windows XP

最终支持服务器 Windows Server 2003

头文件 Winwlx.h

代码示例

代码来自于API sample -GINASTUB

BOOL

WINAPI

WlxNegotiate (DWORD   dwWinlogonVersion,

DWORD * pdwDllVersion)

{

HINSTANCE hDll;

DWORD dwWlxVersion = GINASTUB_VERSION;

// Load MSGINA.DLL.

if (!(hDll = LoadLibrary(REALGINA_PATH)))

{

return FALSE;

}

// Get pointers to WlxNegotiate function in the real MSGINA.

pfWlxNegotiate = (PFWLXNEGOTIATE) GetProcAddress(hDll, "WlxNegotiate");

if (!pfWlxNegotiate)

{

return FALSE;

}

// Handle older version of Winlogon.

if (dwWinlogonVersion < dwWlxVersion)

{

dwWlxVersion = dwWinlogonVersion;

}

// Negotiate with MSGINA for version that we can support.

if (!pfWlxNegotiate(dwWlxVersion, &dwWlxVersion))

{

return FALSE;

}

// Load the rest of the WLX functions from the real MSGINA.

if (!MyInitialize(hDll, dwWlxVersion))

{

return FALSE;

}

// Inform Winlogon which version to use.

*pdwDllVersion = g_dwVersion = dwWlxVersion;

return TRUE;

}

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/7 16:16:08