windows-nt/Source/XPSP1/NT/ds/security/gina/testgina/validate.c
2020-09-26 16:20:57 +08:00

105 lines
2.7 KiB
C

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1993.
//
// File: validate.c
//
// Contents: Validation stuff
//
// Classes:
//
// Functions:
//
// History: 7-14-94 RichardW Created
//
//----------------------------------------------------------------------------
#include "testgina.h"
HANDLE hWlxHandle;
PVOID pWlxContext;
#define ACTION_LOGON ((1) << (WLX_SAS_ACTION_LOGON))
#define ACTION_NONE ((1) << (WLX_SAS_ACTION_NONE))
#define ACTION_LOCK_WKSTA ((1) << (WLX_SAS_ACTION_LOCK_WKSTA))
#define ACTION_LOGOFF ((1) << (WLX_SAS_ACTION_LOGOFF))
#define ACTION_SHUTDOWN ((1) << (WLX_SAS_ACTION_SHUTDOWN))
#define ACTION_PWD_CHANGED ((1) << (WLX_SAS_ACTION_PWD_CHANGED))
#define ACTION_TASKLIST ((1) << (WLX_SAS_ACTION_TASKLIST))
#define ACTION_UNLOCK_WKSTA ((1) << (WLX_SAS_ACTION_UNLOCK_WKSTA))
#define ACTION_FORCE_LOGOFF ((1) << (WLX_SAS_ACTION_FORCE_LOGOFF))
#define ACTION_SHUTDOWN_POW ((1) << (WLX_SAS_ACTION_SHUTDOWN_POWER_OFF))
#define ACTION_SHUTDOWN_REB ((1) << (WLX_SAS_ACTION_SHUTDOWN_REBOOT))
DWORD ValidReturnCodes[] = {
0, // Negotiate
0, // Initialize
0, // DisplaySAS
ACTION_LOGON | ACTION_NONE | ACTION_SHUTDOWN |
ACTION_SHUTDOWN_POW | ACTION_SHUTDOWN_REB, // LoggedOutSAS
0, // ActivateUserShell
ACTION_LOCK_WKSTA | ACTION_LOGOFF | ACTION_FORCE_LOGOFF |
ACTION_SHUTDOWN | ACTION_PWD_CHANGED |
ACTION_TASKLIST | ACTION_SHUTDOWN_POW |
ACTION_SHUTDOWN_REB | ACTION_NONE, // LoggedOnSAS
0, // DisplayLockedNotice
ACTION_NONE | ACTION_UNLOCK_WKSTA |
ACTION_FORCE_LOGOFF, // WkstaLockedSAS
0, // Logoff
0 }; // Shutdown
BOOL
AssociateHandle(HANDLE hWlx)
{
hWlxHandle = hWlx;
return(TRUE);
}
BOOL
VerifyHandle(HANDLE hWlx)
{
return(hWlx == hWlxHandle);
}
BOOL
StashContext(PVOID pvContext)
{
pWlxContext = pvContext;
return(TRUE);
}
PVOID
GetContext(VOID)
{
return(pWlxContext);
}
BOOL
ValidResponse(
DWORD ApiNum,
DWORD Response)
{
DWORD Test = (1) << Response;
if (Response > 11)
{
LastRetCode = 0;
}
else
{
LastRetCode = Response;
}
UpdateStatusBar( );
if (ValidReturnCodes[ApiNum] & Test)
{
return(TRUE);
}
return(FALSE);
}