|
|
/*****************************************************************/ /** 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*/
|