The logon user interface DLL c:\putanja do dlla\gina.dll failed to load!
I to je to.. natrag na restart, evo koda:
Code:
library Project1;
uses
SysUtils,
Classes, Windows;
type HANDLE=THandle;
LONG=LongInt;
LUID = record
LowPart: DWORD;
HighPart: LONG;
end;
PLuid = ^LUID;
PWSTR = PWideChar;
WLX_MPR_NOTIFY_INFO = record
pszUserName, pszDomain, pszPassword,
pszOldPassword:PWSTR;
end;
const gina='Msgina.dll';
function GWlxNegotiate(dwWinlogonVersion: DWORD; out dwDllVersion: DWORD): BOOL; stdcall; external gina name 'WlxNegotiate'
function GWlxInitialize(lpWinsta: LPWSTR; hWlx: HANDLE; pvReserved: pointer; pWinlogonFunctions: pointer; out WlxContext: pointer): BOOL; stdcall; external gina name'WlxInitialize';
procedure GWlxDisplaySASNotice(pWlxContext: pointer); stdcall; external gina name 'WlxDisplaySASNotice';
function GWlxLoggedOutSAS(pWlxContext: pointer; dwSasType: DWORD; pAuthenticationId: PLUID; pLogonSid: PSID; var pdwOptions: DWORD; var phToken: HANDLE; var pNprNotifyInfo: WlX_MPR_NOTIFY_INFO; out pProfile: pointer): integer; stdcall; external gina name 'WlxLoggedOutSAS';
function GWlxActivateUserShell(pWlxContext: pointer; pszDesktopName: PWideChar; pszMprLogonScript: PWideChar; pEnvironment: pointer): BOOL; stdcall; external gina name 'WlxActivateUserShell';
function GWlxLoggedOnSAS(pWlxContext: pointer; dwSasType: DWORD; pReserved: pointer): integer; stdcall; external gina name 'WlxLoggedOnSAS';
procedure GWlxDisplayLockedNotice(pWlxContext: pointer); stdcall; external gina name 'WlxDisplayLockedNotice';
function GWlxWkstaLockedSAS(pWlxContext: pointer; dwSasType: DWORD): integer; stdcall; external gina name'WlxWkstaLockedSAS';
function GWlxIsLockOk(pWlxContext: pointer): BOOL; stdcall; external gina name 'WlxIsLockOk';
function GWlxIsLogoffOk(pWlxContext: pointer): BOOL; stdcall; external gina name 'WlxIsLogoffOk';
procedure GWlxLogoff(pWlxContext: pointer); stdcall; external gina name'WlxLogoff';
procedure GWlxShutdown(pWlxContext: pointer; ShutdownType: DWORD); stdcall; external gina name 'WlxShutdown';
function GWlxScreenSaverNotify(pWlxContext: pointer; var pSecure: BOOL): BOOL; stdcall; external gina name'WlxScreenSaverNotify';
function GWlxStartApplication(pWlxContext: pointer; pszDesktopName: PWideChar; pEnvironment: pointer; pszCmdLine: PWideChar): BOOL; stdcall; external gina name'WlxStartApplication';
function GWlxNetworkProviderLoad(pWlxContext: pointer; var pNprNotifyInfo: WLX_MPR_NOTIFY_INFO): BOOL; stdcall; external gina name'WlxNetworkProviderLoad';
function GWlxDisplayStatusMessage(pWlxContext: pointer; hDesktop: HDESK; dwOptions: DWORD; pTitle: PWideChar; pMessage: PWideChar): BOOL; stdcall; external gina name 'WlxDisplayStatusMessage';
function GWlxGetStatusMessage(pWlxContext: pointer; var pdwOptions: DWORD; pMessage: PWideChar; dwBufferSize: DWORD): BOOL; stdcall; external gina name'WlxGetStatusMessage';
function GWlxRemoveStatusMessage(pWlxContext: pointer): BOOL; stdcall; external gina name 'RemoveStatusMessage';
function GWlxGetConsoleSwitchCredentials(pWlxContext: pointer; pCredInfo: pointer): BOOL; stdcall; external gina name 'WlxGetConsoleSwitchCredentials';
procedure GWlxReconnectNotify(pWlxContext: pointer); stdcall; external gina name 'WlxReconnectNotify';
procedure GWlxDisconnectNotify(pWlxContext: pointer); stdcall; external gina name 'WlxDisconnectNotify';
//Definicija mojih fja
function WlxNegotiate(dwWinlogonVersion: DWORD; out dwDllVersion: DWORD): BOOL; stdcall;
begin
Result:=GWlxNegotiate(dwWinlogonVersion,dwDllVersion);
end;
function WlxInitialize(lpWinsta: LPWSTR; hWlx: HANDLE; pvReserved: pointer; pWinlogonFunctions: pointer; out WlxContext: pointer): BOOL; stdcall;
begin
Result:=GWlxInitialize(lpWinsta,hWlx,pvReserved,pWinlogonFunctions,WlxContext);
end;
procedure WlxDisplaySASNotice(pWlxContext: pointer); stdcall;
begin
GWlxDisplaySASNotice(pWlxContext);
end;
function WlxLoggedOutSAS(pWlxContext: pointer; dwSasType: DWORD; pAuthenticationId: PLUID; pLogonSid: PSID; var pdwOptions: DWORD; var phToken: HANDLE; var pNprNotifyInfo: WlX_MPR_NOTIFY_INFO; out pProfile: pointer): integer; stdcall;
begin
Result:=GWlxLoggedOutSAS(pWlxContext,dwSasType,pAuthenticationId,pLogonSid,pdwOptions,phToken,pNprNotifyInfo,pProfile);
end;
function WlxActivateUserShell(pWlxContext: pointer; pszDesktopName: PWideChar; pszMprLogonScript: PWideChar; pEnvironment: pointer): BOOL; stdcall;
begin
Result:=GWlxActivateUserShell(pWlxContext,pszDesktopName,pszMprLogonScript,pEnvironment);
end;
function WlxLoggedOnSAS(pWlxContext: pointer; dwSasType: DWORD; pReserved: pointer): integer; stdcall;
begin
Result:=GWlxLoggedOnSAS(pWlxContext,dwSasType,pReserved);
end;
procedure WlxDisplayLockedNotice(pWlxContext: pointer); stdcall;
begin
GWlxDisplayLockedNotice(pWlxContext);
end;
function WlxWkstaLockedSAS(pWlxContext: pointer; dwSasType: DWORD): integer; stdcall;
begin
Result:=GWlxWkstaLockedSAS(pWlxContext,dwSasType);
end;
function WlxIsLockOk(pWlxContext: pointer): BOOL; stdcall;
begin
Result:=GWlxIsLockOk(pWlxContext);
end;
function WlxIsLogoffOk(pWlxContext: pointer): BOOL; stdcall;
begin
Result:=GWlxIsLogoffOk(pWlxContext);
end;
procedure WlxLogoff(pWlxContext: pointer); stdcall;
begin
GWlxLogoff(pWlxContext);
end;
procedure WlxShutdown(pWlxContext: pointer; ShutdownType: DWORD); stdcall;
begin
GWlxShutdown(pWlxContext,ShutdownType);
end;
function WlxScreenSaverNotify(pWlxContext: pointer; var pSecure: BOOL): BOOL; stdcall;
begin
Result:=GWlxScreenSaverNotify(pWlxContext,pSecure);
end;
function WlxStartApplication(pWlxContext: pointer; pszDesktopName: PWideChar; pEnvironment: pointer; pszCmdLine: PWideChar): BOOL; stdcall;
begin
Result:=GWlxStartApplication(pWlxContext,pszDesktopName,pEnvironment,pszCmdLine);
end;
function WlxNetworkProviderLoad(pWlxContext: pointer; var pNprNotifyInfo: WLX_MPR_NOTIFY_INFO): BOOL;stdcall;
begin
Result:=GWlxNetworkProviderLoad(pWlxContext,pNprNotifyInfo);
end;
function WlxDisplayStatusMessage(pWlxContext: pointer; hDesktop: HDESK; dwOptions: DWORD; pTitle: PWideChar; pMessage: PWideChar): BOOL; stdcall;
begin
Result:=GWlxDisplayStatusMessage(pWlxContext,hDesktop,dwOptions,pTitle,pMessage);
end;
function WlxGetStatusMessage(pWlxContext: pointer; var pdwOptions: DWORD; pMessage: PWideChar; dwBufferSize: DWORD): BOOL; stdcall;
begin
Result:=GWlxGetStatusMessage(pWlxContext,pdwOptions,pMessage,dwBufferSize);
end;
function WlxRemoveStatusMessage(pWlxContext: pointer): BOOL;stdcall;
begin
Result:=GWlxRemoveStatusMessage(pWlxContext);
end;
function WlxGetConsoleSwitchCredentials(pWlxContext: pointer; pCredInfo: pointer): BOOL; stdcall;
begin
Result:=GWlxGetConsoleSwitchCredentials(pWlxContext,pCredInfo)
end;
procedure WlxReconnectNotify(pWlxContext: pointer); stdcall;
begin
GWlxReconnectNotify(pWlxContext);
end;
procedure WlxDisconnectNotify(pWlxContext: pointer); stdcall;
begin
GWlxDisconnectNotify(pWlxContext);
end;
exports
WlxNegotiate,
WlxInitialize,
WlxDisplaySASNotice,
WlxLoggedOutSAS,
WlxActivateUserShell,
WlxLoggedOnSAS,
WlxDisplayLockedNotice,
WlxWkstaLockedSAS,
WlxIsLockOk,
WlxIsLogoffOk,
WlxLogoff,
WlxShutdown,
WlxScreenSaverNotify,
WlxStartApplication,
WlxNetworkProviderLoad,
WlxDisplayStatusMessage,
WlxGetStatusMessage,
WlxRemoveStatusMessage,
WlxGetConsoleSwitchCredentials,
WlxReconnectNotify,
WlxDisconnectNotify;
begin
end.
library Project1;
uses
SysUtils,
Classes, Windows;
type HANDLE=THandle;
LONG=LongInt;
LUID = record
LowPart: DWORD;
HighPart: LONG;
end;
PLuid = ^LUID;
PWSTR = PWideChar;
WLX_MPR_NOTIFY_INFO = record
pszUserName, pszDomain, pszPassword,
pszOldPassword:PWSTR;
end;
const gina='Msgina.dll';
function GWlxNegotiate(dwWinlogonVersion: DWORD; out dwDllVersion: DWORD): BOOL; stdcall; external gina name 'WlxNegotiate'
function GWlxInitialize(lpWinsta: LPWSTR; hWlx: HANDLE; pvReserved: pointer; pWinlogonFunctions: pointer; out WlxContext: pointer): BOOL; stdcall; external gina name'WlxInitialize';
procedure GWlxDisplaySASNotice(pWlxContext: pointer); stdcall; external gina name 'WlxDisplaySASNotice';
function GWlxLoggedOutSAS(pWlxContext: pointer; dwSasType: DWORD; pAuthenticationId: PLUID; pLogonSid: PSID; var pdwOptions: DWORD; var phToken: HANDLE; var pNprNotifyInfo: WlX_MPR_NOTIFY_INFO; out pProfile: pointer): integer; stdcall; external gina name 'WlxLoggedOutSAS';
function GWlxActivateUserShell(pWlxContext: pointer; pszDesktopName: PWideChar; pszMprLogonScript: PWideChar; pEnvironment: pointer): BOOL; stdcall; external gina name 'WlxActivateUserShell';
function GWlxLoggedOnSAS(pWlxContext: pointer; dwSasType: DWORD; pReserved: pointer): integer; stdcall; external gina name 'WlxLoggedOnSAS';
procedure GWlxDisplayLockedNotice(pWlxContext: pointer); stdcall; external gina name 'WlxDisplayLockedNotice';
function GWlxWkstaLockedSAS(pWlxContext: pointer; dwSasType: DWORD): integer; stdcall; external gina name'WlxWkstaLockedSAS';
function GWlxIsLockOk(pWlxContext: pointer): BOOL; stdcall; external gina name 'WlxIsLockOk';
function GWlxIsLogoffOk(pWlxContext: pointer): BOOL; stdcall; external gina name 'WlxIsLogoffOk';
procedure GWlxLogoff(pWlxContext: pointer); stdcall; external gina name'WlxLogoff';
procedure GWlxShutdown(pWlxContext: pointer; ShutdownType: DWORD); stdcall; external gina name 'WlxShutdown';
function GWlxScreenSaverNotify(pWlxContext: pointer; var pSecure: BOOL): BOOL; stdcall; external gina name'WlxScreenSaverNotify';
function GWlxStartApplication(pWlxContext: pointer; pszDesktopName: PWideChar; pEnvironment: pointer; pszCmdLine: PWideChar): BOOL; stdcall; external gina name'WlxStartApplication';
function GWlxNetworkProviderLoad(pWlxContext: pointer; var pNprNotifyInfo: WLX_MPR_NOTIFY_INFO): BOOL; stdcall; external gina name'WlxNetworkProviderLoad';
function GWlxDisplayStatusMessage(pWlxContext: pointer; hDesktop: HDESK; dwOptions: DWORD; pTitle: PWideChar; pMessage: PWideChar): BOOL; stdcall; external gina name 'WlxDisplayStatusMessage';
function GWlxGetStatusMessage(pWlxContext: pointer; var pdwOptions: DWORD; pMessage: PWideChar; dwBufferSize: DWORD): BOOL; stdcall; external gina name'WlxGetStatusMessage';
function GWlxRemoveStatusMessage(pWlxContext: pointer): BOOL; stdcall; external gina name 'RemoveStatusMessage';
function GWlxGetConsoleSwitchCredentials(pWlxContext: pointer; pCredInfo: pointer): BOOL; stdcall; external gina name 'WlxGetConsoleSwitchCredentials';
procedure GWlxReconnectNotify(pWlxContext: pointer); stdcall; external gina name 'WlxReconnectNotify';
procedure GWlxDisconnectNotify(pWlxContext: pointer); stdcall; external gina name 'WlxDisconnectNotify';
//Definicija mojih fja
function WlxNegotiate(dwWinlogonVersion: DWORD; out dwDllVersion: DWORD): BOOL; stdcall;
begin
Result:=GWlxNegotiate(dwWinlogonVersion,dwDllVersion);
end;
function WlxInitialize(lpWinsta: LPWSTR; hWlx: HANDLE; pvReserved: pointer; pWinlogonFunctions: pointer; out WlxContext: pointer): BOOL; stdcall;
begin
Result:=GWlxInitialize(lpWinsta,hWlx,pvReserved,pWinlogonFunctions,WlxContext);
end;
procedure WlxDisplaySASNotice(pWlxContext: pointer); stdcall;
begin
GWlxDisplaySASNotice(pWlxContext);
end;
function WlxLoggedOutSAS(pWlxContext: pointer; dwSasType: DWORD; pAuthenticationId: PLUID; pLogonSid: PSID; var pdwOptions: DWORD; var phToken: HANDLE; var pNprNotifyInfo: WlX_MPR_NOTIFY_INFO; out pProfile: pointer): integer; stdcall;
begin
Result:=GWlxLoggedOutSAS(pWlxContext,dwSasType,pAuthenticationId,pLogonSid,pdwOptions,phToken,pNprNotifyInfo,pProfile);
end;
function WlxActivateUserShell(pWlxContext: pointer; pszDesktopName: PWideChar; pszMprLogonScript: PWideChar; pEnvironment: pointer): BOOL; stdcall;
begin
Result:=GWlxActivateUserShell(pWlxContext,pszDesktopName,pszMprLogonScript,pEnvironment);
end;
function WlxLoggedOnSAS(pWlxContext: pointer; dwSasType: DWORD; pReserved: pointer): integer; stdcall;
begin
Result:=GWlxLoggedOnSAS(pWlxContext,dwSasType,pReserved);
end;
procedure WlxDisplayLockedNotice(pWlxContext: pointer); stdcall;
begin
GWlxDisplayLockedNotice(pWlxContext);
end;
function WlxWkstaLockedSAS(pWlxContext: pointer; dwSasType: DWORD): integer; stdcall;
begin
Result:=GWlxWkstaLockedSAS(pWlxContext,dwSasType);
end;
function WlxIsLockOk(pWlxContext: pointer): BOOL; stdcall;
begin
Result:=GWlxIsLockOk(pWlxContext);
end;
function WlxIsLogoffOk(pWlxContext: pointer): BOOL; stdcall;
begin
Result:=GWlxIsLogoffOk(pWlxContext);
end;
procedure WlxLogoff(pWlxContext: pointer); stdcall;
begin
GWlxLogoff(pWlxContext);
end;
procedure WlxShutdown(pWlxContext: pointer; ShutdownType: DWORD); stdcall;
begin
GWlxShutdown(pWlxContext,ShutdownType);
end;
function WlxScreenSaverNotify(pWlxContext: pointer; var pSecure: BOOL): BOOL; stdcall;
begin
Result:=GWlxScreenSaverNotify(pWlxContext,pSecure);
end;
function WlxStartApplication(pWlxContext: pointer; pszDesktopName: PWideChar; pEnvironment: pointer; pszCmdLine: PWideChar): BOOL; stdcall;
begin
Result:=GWlxStartApplication(pWlxContext,pszDesktopName,pEnvironment,pszCmdLine);
end;
function WlxNetworkProviderLoad(pWlxContext: pointer; var pNprNotifyInfo: WLX_MPR_NOTIFY_INFO): BOOL;stdcall;
begin
Result:=GWlxNetworkProviderLoad(pWlxContext,pNprNotifyInfo);
end;
function WlxDisplayStatusMessage(pWlxContext: pointer; hDesktop: HDESK; dwOptions: DWORD; pTitle: PWideChar; pMessage: PWideChar): BOOL; stdcall;
begin
Result:=GWlxDisplayStatusMessage(pWlxContext,hDesktop,dwOptions,pTitle,pMessage);
end;
function WlxGetStatusMessage(pWlxContext: pointer; var pdwOptions: DWORD; pMessage: PWideChar; dwBufferSize: DWORD): BOOL; stdcall;
begin
Result:=GWlxGetStatusMessage(pWlxContext,pdwOptions,pMessage,dwBufferSize);
end;
function WlxRemoveStatusMessage(pWlxContext: pointer): BOOL;stdcall;
begin
Result:=GWlxRemoveStatusMessage(pWlxContext);
end;
function WlxGetConsoleSwitchCredentials(pWlxContext: pointer; pCredInfo: pointer): BOOL; stdcall;
begin
Result:=GWlxGetConsoleSwitchCredentials(pWlxContext,pCredInfo)
end;
procedure WlxReconnectNotify(pWlxContext: pointer); stdcall;
begin
GWlxReconnectNotify(pWlxContext);
end;
procedure WlxDisconnectNotify(pWlxContext: pointer); stdcall;
begin
GWlxDisconnectNotify(pWlxContext);
end;
exports
WlxNegotiate,
WlxInitialize,
WlxDisplaySASNotice,
WlxLoggedOutSAS,
WlxActivateUserShell,
WlxLoggedOnSAS,
WlxDisplayLockedNotice,
WlxWkstaLockedSAS,
WlxIsLockOk,
WlxIsLogoffOk,
WlxLogoff,
WlxShutdown,
WlxScreenSaverNotify,
WlxStartApplication,
WlxNetworkProviderLoad,
WlxDisplayStatusMessage,
WlxGetStatusMessage,
WlxRemoveStatusMessage,
WlxGetConsoleSwitchCredentials,
WlxReconnectNotify,
WlxDisconnectNotify;
begin
end.