函数介绍自建的替换GINA必须实现WlxInitialize函数,Winlogon为电脑上每个当前windows工作台调用一次这个函数.系统支持每个工作站一个工作台。
注:Windows Vista忽略GINA动态链接库(Vista及以后版本参考ICredentialProvider)
语法
BOOL WlxInitialize(__in LPWSTR lpWinsta,
__in HANDLE hWlx,
__in PVOID pvReserved,
__in PVOID pWinlogonFunctions,
__out PVOID *pWlxContext
);
参数
lpWinsta[in]
指向初始化了的工作台的名字的指针。
hWlx[in]
Winlogon的句柄,GINA在调用所有Winlogon提供的函数时必须提供这个句柄。
pvReserved[in]
保留参数,必须设置为NULL。
pWinlogonFunctions[in]
Winlogon提供的函数分发表(dispatch table)的指针。它的内容取决于之前GINAWlxNegotiate反馈给Winlogon的版本。这个表不会修改,GINA可以引用表而无需复制它。如果GINA需要复制表,那需要调用WlxGetOption 并且为Option参数提供WLX_OPTION_DISPATCH_TABLE_SIZE。
值
含义
WLX_DISPATCH_VERSION_1_4
Winlogon dispatch table - version 1.4
WLX_DISPATCH_VERSION_1_3
Winlogon dispatch table - version 1.3
WLX_DISPATCH_VERSION_1_2
Winlogon dispatch table - version 1.2
WLX_DISPATCH_VERSION_1_1
Winlogon dispatch table - version 1.1
WLX_DISPATCH_VERSION_1_0
Winlogon dispatch table - version 1.0
pWlxContext[out]
VOID型指针的指针包含了这个工作台的GINA上下文地址。Winlogon在所有对GINA的调用中传进这个上下文。这个上下文指针可以在稍后通过调用WlxSetOption函数使用WLX_OPTION_CONTEXT_POINTER改变
返回值
如果函数成功的初始化了GINA DLL,函数返回TRUE。
如果函数失败,或者GINA没有被初始化,Winlogon终止,系统不会启动。
附注
目前仅支持一个名为winsta0的工作台
需求
支持的最低客户机
Windows 2000 Professional
支持的最低服务器
Windows 2000 Server
最终支持客户机
Windows XP
最终支持服务器
Windows Server 2003
头文件
Winwlx.h