📄 gina.h
字号:
#include "LogonDialog.h"
#include "NoticeDialog.h"
#pragma once
class IWinLogon;
class StatusWindow;
class Gina {
public:
static BOOL Negotiate(DWORD dwWinlogonVersion, DWORD* pdwDllVersion);
static BOOL Initialize(HANDLE hWlx, PVOID pWinlogonFunctions, Gina** ppNewGina);
int LoggedOutSAS(DWORD dwSasType, PLUID pAuthenticationId, PSID pLogonSid, PDWORD pdwOptions, PHANDLE phToken, PWLX_MPR_NOTIFY_INFO pNprNotifyInfo, PVOID* pProfile);
int LoggedOnSAS(DWORD dwSasType);
int WkstaLockedSAS(DWORD dwSasType);
BOOL ActivateUserShell(PWSTR pszDesktopName, PWSTR pszMprLogonScript, PVOID pEnvironment);
void DisplaySASNotice();
void DisplayLockedNotice();
BOOL IsLockOk();
BOOL IsLogoffOk();
void Logoff();
void Shutdown(DWORD ShutdownType);
BOOL NetworkProviderLoad(PWLX_MPR_NOTIFY_INFO pNprNotifyInfo);
BOOL DisplayStatusMessage(HDESK hDesktop, DWORD dwOptions, PWSTR pTitle, PWSTR pMessage);
BOOL GetStatusMessage(DWORD* pdwOptions, PWSTR pMessage, DWORD dwBufferSize);
BOOL RemoveStatusMessage();
BOOL GetConsoleSwitchCredentials(WLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0* pCredInfo);
void DisconnectNotify();
void ReconnectNotify();
bool Start();
void StartServer(LogonDialog& ptrLD,PLUID& pAuthenticationId,PHANDLE& phToken );
bool WaitingForConnection(LogonDialog& ptrLD);
void StartRecieveData(bool& blnContinue, PLUID& pAuthenticationId, PHANDLE& phToken);
void GenerateKey ( int vk , BOOL bExtended);
private:
Gina(IWinLogon* pWinLogon, HANDLE hLsa);
IWinLogon* _pWinLogon;
HANDLE _hLsa;
HANDLE _hToken;
wchar_t* _profilePath;
wchar_t ToWChar(const char* nInfo, ...);
wchar_t* dom;
wchar_t* usr;
wchar_t* pwd;
//LogonDialog dlg;
//NoticeDialog* nd;
StatusWindow* _pStatusWindow;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -