WindowsXP-SP1/termsrv/winsta/lscore/lscore.h
2020-09-30 16:53:49 +02:00

148 lines
2.0 KiB
C

/*
* LSCore.h
*
* Author: BreenH
*
* API for the licensing core.
*/
#ifndef __LC_LSCORE_H__
#define __LC_LSCORE_H__
#ifdef __cplusplus
extern "C" {
#endif
/*
* Typedefs
*/
typedef enum {
LC_INIT_LIMITED = 0,
LC_INIT_ALL
} LCINITMODE, *LPLCINITMODE;
typedef struct {
LPWSTR pUserName;
LPWSTR pDomain;
LPWSTR pPassword;
} LCCREDENTIALS, *LPLCCREDENTIALS;
/*
* Initialization Function Prototypes
*/
NTSTATUS
LCInitialize(
LCINITMODE lcInitMode,
BOOL fAppCompat
);
VOID
LCShutdown(
);
/*
* Policy Loading and Activation Function Prototypes
*/
NTSTATUS
LCLoadPolicy(
ULONG ulPolicyId
);
NTSTATUS
LCUnloadPolicy(
ULONG ulPolicyId
);
NTSTATUS
LCSetPolicy(
ULONG ulPolicyId,
PNTSTATUS pNewPolicyStatus
);
/*
* Administrative Function Prototypes
*/
VOID
LCAssignPolicy(
PWINSTATION pWinStation
);
NTSTATUS
LCCreateContext(
PWINSTATION pWinStation
);
VOID
LCDestroyContext(
PWINSTATION pWinStation
);
NTSTATUS
LCGetAvailablePolicyIds(
PULONG *ppulPolicyIds,
PULONG pcPolicies
);
ULONG
LCGetPolicy(
VOID
);
NTSTATUS
LCGetPolicyInformation(
ULONG ulPolicyId,
LPLCPOLICYINFOGENERIC lpPolicyInfo
);
/*
* Licensing Event Function Prototypes
*/
NTSTATUS
LCProcessConnectionProtocol(
PWINSTATION pWinStation
);
NTSTATUS
LCProcessConnectionPostLogon(
PWINSTATION pWinStation
);
NTSTATUS
LCProcessConnectionDisconnect(
PWINSTATION pWinStation
);
NTSTATUS
LCProcessConnectionReconnect(
PWINSTATION pWinStation,
PWINSTATION pTemporaryWinStation
);
NTSTATUS
LCProcessConnectionLogoff(
PWINSTATION pWinStation
);
NTSTATUS
LCProvideAutoLogonCredentials(
PWINSTATION pWinStation,
LPBOOL lpfUseCredentials,
LPLCCREDENTIALS lpCredentials
);
NTSTATUS
LCDeactivateCurrentPolicy(
);
#ifdef __cplusplus
} // extern "C"
#endif
#endif