函式介紹
自建的替換GINA必須實現WlxInitialize函式,Winlogon為電腦上每個當前windows工作檯調用一次這個函式.系統支持每個工作站一個工作檯。
註:Windows Vista忽略GINA動態程式庫(Vista及以後版本參考ICredentialProvider)
語法
BOOL WlxInitialize( __in LPWSTR lpWinsta,
__in HANDLE hWlx,
__in PVOID pvReserved,
__in PVOID pWinlogonFunctions,
__outPVOID *pWlxContext
);
參數
lpWinsta [in]
指向初始化了的工作檯的名字的指針。
hWlx [in]
Winlogon的句柄,GINA在調用所有Winlogon提供的函式時必須提供這個句柄。
pvReserved [in]
保留參數,必須設定為NULL。
pWinlogonFunctions [in]
Winlogon提供的函式分發表(dispatch table)的指針。它的內容取決於之前GINA WlxNegotiate 反饋給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 |