174 lines
4.6 KiB
C
174 lines
4.6 KiB
C
/*****************************************************************/
|
||
/** 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*/
|