You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
173 lines
4.8 KiB
173 lines
4.8 KiB
/*****************************************************************/
|
|
/** Microsoft Windows **/
|
|
/** Copyright (C) Microsoft Corp., 1993-5 **/
|
|
/*****************************************************************/
|
|
|
|
/*
|
|
SEC32API.H
|
|
|
|
This header file contains declarations for the internal versions
|
|
of the 32-bit Access API, as exported by FILESEC.386. It also
|
|
contains constant definitions used by securty components
|
|
|
|
This file relies, in part, on NETVXD.H and VXDCALL.H.
|
|
|
|
This file must be H2INC-able.
|
|
|
|
FILE HISTORY:
|
|
dannygl 09/25/93 Initial version
|
|
dannygl 09/29/93 Add NetAccessSetInfo
|
|
dannygl 10/04/93 Add security-related string constants
|
|
dannygl 01/17/94 Replace Win32 services with IOCtls
|
|
dannygl 02/10/94 Add NetAccess arg count constants
|
|
dannygl 02/16/94 Update registry string constants
|
|
dannygl 11/17/94 Add Logon2 API (supported by MSSP only)
|
|
*/
|
|
|
|
|
|
// Registry string constants
|
|
// Security provider information (in HKEY_LOCAL_MACHINE)
|
|
#define REGKEY_SP_CONFIG "Security\\Provider"
|
|
|
|
#define REGVAL_SP_PLATFORM "Platform_Type"
|
|
#define REGVAL_SP_CONTAINER "Container"
|
|
#define REGVAL_SP_ABSERVER "Address_Server"
|
|
#define REGVAL_SP_ONEOFFABSERVER "One_Off_Address_Server"
|
|
#define REGVAL_SP_ABPROVIDER "Address_Book"
|
|
#define REGVAL_SP_NO_SORT "NoSort"
|
|
|
|
// Obsolescent definition -- will be deleted soon
|
|
//#define REGVAL_SP_PTPROVIDER "Pass_Through"
|
|
|
|
// Definitions for the IOControl interface that FILESEC uses for Win32 API
|
|
// support
|
|
|
|
#define FSIOC_API_Base 100
|
|
|
|
/*XLATOFF*/
|
|
|
|
typedef enum
|
|
{
|
|
FSIOC_AccessAddAPI = FSIOC_API_Base,
|
|
FSIOC_AccessCheckAPI,
|
|
FSIOC_AccessDelAPI,
|
|
FSIOC_AccessEnumAPI,
|
|
FSIOC_AccessGetInfoAPI,
|
|
FSIOC_AccessGetUserPermsAPI,
|
|
FSIOC_AccessSetInfoAPI
|
|
} FSIOC_Ordinal;
|
|
|
|
/*XLATON*/
|
|
|
|
// Important: We define this constant separately because we need it
|
|
// to be H2INC'able. It must match the above enumerated type.
|
|
#define FSIOC_API_Count 7
|
|
|
|
// Arg counts for Access functions
|
|
//
|
|
// Note: These constants are defined for readability purposes and should not
|
|
// be modified independently.
|
|
#define Argc_AccessAdd 3
|
|
#define Argc_AccessCheck 4
|
|
#define Argc_AccessDel 1
|
|
#define Argc_AccessEnum 7
|
|
#define Argc_AccessGetInfo 5
|
|
#define Argc_AccessGetUserPerms 3
|
|
#define Argc_AccessSetInfo 5
|
|
|
|
// Definitions used by the Security Provider VxDs to expose interfaces
|
|
// to Win32 code via IOCtls
|
|
|
|
#define SPIOC_API_Base 100
|
|
|
|
/*XLATOFF*/
|
|
|
|
typedef enum
|
|
{
|
|
SPIOC_PreLogonAPI = SPIOC_API_Base,
|
|
SPIOC_LogonAPI,
|
|
SPIOC_LogoffAPI,
|
|
SPIOC_GetFlagsAPI,
|
|
SPIOC_GetContainerAPI,
|
|
SPIOC_NW_GetUserObjectId, // NWSP only
|
|
SPIOC_Logon2API, // Currently MSSP only
|
|
SPIOC_DiscoverDC // MSSP only
|
|
} SPIOC_Ordinal;
|
|
|
|
/*XLATON*/
|
|
|
|
// Important: We define this constant separately because we need it
|
|
// to be H2INC'able. It must match the above enumerated type.
|
|
#define SPIOC_API_Count 8
|
|
|
|
/*XLATOFF*/
|
|
|
|
typedef struct
|
|
{
|
|
unsigned char *pbChallenge;
|
|
unsigned long *pcbChallenge;
|
|
} AUTHPRELOGONINFO, *PAUTHPRELOGONINFO;
|
|
|
|
typedef struct
|
|
{
|
|
const char *pszContainer;
|
|
const char *pszUserName;
|
|
const char *pszClientName;
|
|
const unsigned char *pbResponse;
|
|
unsigned long cbResponse;
|
|
const unsigned char *pbChallenge;
|
|
unsigned long cbChallenge;
|
|
unsigned long fResponseType;
|
|
unsigned long *pfResult;
|
|
} AUTHLOGONINFO, *PAUTHLOGONINFO;
|
|
|
|
typedef struct
|
|
{
|
|
const char *pszContainer;
|
|
char *pszContainerValidated;
|
|
const char *pszUserName;
|
|
char *pszUserValidated;
|
|
const char *pszClientName;
|
|
const unsigned char *pbResponse;
|
|
unsigned long cbResponse;
|
|
const unsigned char *pbResponse2;
|
|
unsigned long cbResponse2;
|
|
const unsigned char *pbChallenge;
|
|
unsigned long cbChallenge;
|
|
unsigned long *pfFlags;
|
|
unsigned long *pfResult;
|
|
} AUTHLOGON2INFO, *PAUTHLOGON2INFO;
|
|
|
|
typedef struct
|
|
{
|
|
const char *pszContainer;
|
|
const char *pszUserName;
|
|
const char *pszClientName;
|
|
} AUTHLOGOFFINFO, *PAUTHLOGOFFINFO;
|
|
|
|
typedef struct
|
|
{
|
|
unsigned long *pdwFlags;
|
|
unsigned long *pdwSecurity;
|
|
} AUTHGETFLAGS, *PAUTHGETFLAGS;
|
|
|
|
typedef struct
|
|
{
|
|
char *pszContainer;
|
|
unsigned long *pcbContainer;
|
|
} AUTHGETCONTAINER, *PAUTHGETCONTAINER;
|
|
|
|
typedef struct
|
|
{
|
|
char *pszUserName;
|
|
unsigned long dwObjectId;
|
|
} AUTHNWGETUSEROBJECTID, *PAUTHNWGETUSEROBJECTID;
|
|
|
|
typedef struct
|
|
{
|
|
const char *pszDomain;
|
|
char *pszDCs; // Concatenated strings, ended with an extra null
|
|
unsigned long *pcbDCs;
|
|
} AUTHDISCOVERDC, *PAUTHDISCOVERDC;
|
|
|
|
/*XLATON*/
|