WlxNegotiate function (winwlx.h)

[The WlxNegotiate function is no longer available for use as of Windows Server 2008 and Windows Vista.]

The WlxNegotiate function must be implemented by a replacement GINA DLL. This is the first call made by Winlogon to the GINA DLL. WlxNegotiate allows the GINA to verify that it supports the installed version of Winlogon.

Note   GINA DLLs are ignored in Windows Vista.


BOOL WlxNegotiate(
  [in]  DWORD  dwWinlogonVersion,
  [out] PDWORD pdwDllVersion


[in] dwWinlogonVersion

Specifies which version of Winlogon will be communicating with the GINA.

[out] pdwDllVersion

Indicates which version of Winlogon the GINA supports. This version information is also used by Winlogon to determine which dispatch table is passed to the GINA in subsequent calls to WlxInitialize. This version cannot be greater than the version specified by dwWinLogonVersion.

Return value

If the Winlogon version specified by dwWinLogonVersion is greater than or equal to the version returned in pdwDllVersion, the function returns TRUE. When TRUE is returned, Winlogon will continue to initialize.

If dwWinLogonVersion is less than pdwDllVersion, the function returns FALSE. When FALSE is returned, Winlogon will terminate and the system will not boot.


Before calling WlxNegotiate, Winlogon sets the desktop state so that the current desktop is the Winlogon desktop and sets the workstation state so that the desktop is locked.


Minimum supported client Windows XP [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Target Platform Windows
Header winwlx.h

See also