This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/Borland/BCC55/Include/mdsi.h

476 lines
10 KiB
C

/*---------------------------------------------------------------------------
Copyright (c) Microsoft Corporation. 1996. All Rights Reserved.
mdsi.h
Multiple Domain Synchronization Interface
Authors:
sandipn
Version Ident:
History:
03/26/96 sandipn Initial Creation
08/08/96 sandipn Updates for MDSI V1.1
10/10/96 sandipn Updates for MDSI V1.2
---------------------------------------------------------------------------*/
#ifndef __MDSI_H__
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
#define __MDSI_H__
#ifndef _WINDOWS_
#include <windows.h>
#endif // _WINDOWS_
#ifdef __cplusplus
extern "C" {
#endif
//
// In parameters
//
#undef IN
#define IN
//
// Out parameters
//
#undef OUT
#define OUT
//
// Following define is used to enable forwarding user's old password
// in a change password request
//
#undef ENABLE_OLD_PASSWORD_PROPAGATION
#define ENABLE_OLD_PASSWORD_PROPAGATION 1
//
// Version of the Host Process exported MDSI interface
// Version is in two parts: Major revision and minor revision.
// Major revision is the upper 16-bits, minor is the lower
// 16-bits.
//
#define HOSTSEC_MDSI_VERSION_1_1 (0X00010001)
#define HOSTSEC_MDSI_VERSION_1_2 (0X00010002)
#define HOSTSEC_MDSI_CURRENT_VERSION (HOSTSEC_MDSI_VERSION_1_2)
//
// Host Process implemented functions which ISV Security DLL invokes
//
//
// NtSecValidateLogin
//
typedef
DWORD
(WINAPI * PNTSEC_VALIDATE_LOGIN)(
IN HANDLE, // hHostDomain
IN HANDLE, // hTransaction
IN LPWSTR, // pwszUserName
IN LPWSTR // pwszPassword
);
//
// NtSecChangePassword
//
#ifdef ENABLE_OLD_PASSWORD_PROPAGATION
typedef
DWORD
(WINAPI * PNTSEC_CHANGE_PASSWORD)(
IN HANDLE, // hHostDomain
IN HANDLE, // hTransaction
IN LPWSTR, // pwszUserName
IN LPWSTR, // pwszNewPassword
IN LPWSTR // pwszOldPassword
);
#else
typedef
DWORD
(WINAPI * PNTSEC_CHANGE_PASSWORD)(
IN HANDLE, // hHostDomain
IN HANDLE, // hTransaction
IN LPWSTR, // pwszUserName
IN LPWSTR // pwszPassword
);
#endif // ENABLE_OLD_PASSWORD_PROPAGATION
//
// NtSecTransactionComplete
//
typedef
BOOL
(WINAPI * PNTSEC_TRANSACTION_COMPLETE)(
IN HANDLE, // hHostDomain
IN HANDLE, // hTransaction
IN DWORD // dwStatus
);
//
// NtSecShutdownComplete
//
typedef
DWORD
(WINAPI * PNTSEC_SHUTDOWN_COMPLETE)(
IN HANDLE // hHostDomain
);
//
// NtSecGetHostUser
//
typedef
DWORD
(WINAPI * PNTSEC_GET_HOST_USER)(
IN HANDLE, // hHostDomain
IN HANDLE, // hTransaction
IN LPWSTR, // pwszNtUserDomain,
IN LPWSTR // pwszNtUser
);
//
// NtSecGetNtUser
//
typedef
DWORD
(WINAPI * PNTSEC_GET_NT_USER)(
IN HANDLE, // hHostDomain
IN HANDLE, // hTransaction
IN LPWSTR // pwszHostUser
);
//
// Function Dispatch Table: contains pointers to each of the entrypoints the Host Process
// provides to the Security Integration DLL.
//
typedef struct tagNTSEC_DISPATCH_VERSION_1_1
{
PNTSEC_VALIDATE_LOGIN NtSecValidateLogin;
PNTSEC_CHANGE_PASSWORD NtSecChangePassword;
PNTSEC_TRANSACTION_COMPLETE NtSecTransactionComplete;
PNTSEC_SHUTDOWN_COMPLETE NtSecShutdownComplete;
} NTSEC_DISPATCH_VERSION_1_1, *PNTSEC_DISPATCH_VERSION_1_1;
typedef struct tagNTSEC_DISPATCH_VERSION_1_2
{
PNTSEC_VALIDATE_LOGIN NtSecValidateLogin;
PNTSEC_CHANGE_PASSWORD NtSecChangePassword;
PNTSEC_TRANSACTION_COMPLETE NtSecTransactionComplete;
PNTSEC_SHUTDOWN_COMPLETE NtSecShutdownComplete;
PNTSEC_GET_HOST_USER NtSecGetHostUser;
PNTSEC_GET_NT_USER NtSecGetNtUser;
} NTSEC_DISPATCH_VERSION_1_2, *PNTSEC_DISPATCH_VERSION_1_2;
typedef NTSEC_DISPATCH_VERSION_1_2 NTSEC_DISPATCH_CURRENT_VERSION;
typedef NTSEC_DISPATCH_CURRENT_VERSION *PNTSEC_DISPATCH_CURRENT_VERSION;
//
// ISV Security DLL implemented functions which Host Process invokes
//
//
// HostSecNegotiate
//
BOOL
WINAPI
HostSecNegotiate(
IN DWORD, // dwHostProcessVersion
OUT PDWORD // pdwDllVersion
);
typedef
BOOL
(WINAPI * PHOSTSEC_NEGOTIATE)(
IN DWORD, // dwHostProcessVersion
OUT PDWORD // pdwDllVersion
);
//
// HostSecInitialize
//
BOOL
WINAPI
HostSecInitialize(
IN LPWSTR, // pwszDomainName
IN HANDLE, // hHostDomain
IN PVOID, // pHostSecFunctions
OUT PVOID *, // ppDllSecFunctions
OUT PVOID * // phDllDomainContext
);
typedef
BOOL
(WINAPI * PHOSTSEC_INITIALIZE)(
IN LPWSTR, // pwszDomainName
IN HANDLE, // hHostDomain
IN PVOID, // pHostSecFunctions
OUT PVOID *, // ppDllSecFunctions
OUT PVOID * // phDllDomainContext
);
//
// HostSecValidateLogin
//
DWORD
WINAPI
HostSecValidateLogin(
IN PVOID, // hDllDomainContext
IN HANDLE, // hTransaction
IN LPWSTR, // pwszUserName
IN LPWSTR // pwszPassword
);
typedef
DWORD
(WINAPI * PHOSTSEC_VALIDATE_LOGIN)(
IN PVOID, // hDllDomainContext
IN HANDLE, // hTransaction
IN LPWSTR, // pwszUserName
IN LPWSTR // pwszPassword
);
//
// HostSecChangePassword
//
#ifdef ENABLE_OLD_PASSWORD_PROPAGATION
DWORD
WINAPI
HostSecChangePassword(
IN PVOID, // hDllDomainContext
IN HANDLE, // hTransaction
IN LPWSTR, // pwszUserName
IN LPWSTR, // pwszNewPassword
IN LPWSTR // pwszOldPassword
);
typedef
DWORD
(WINAPI * PHOSTSEC_CHANGE_PASSWORD)(
IN PVOID, // hDllDomainContext
IN HANDLE, // hTransaction
IN LPWSTR, // pwszUserName
IN LPWSTR, // pwszNewPassword
IN LPWSTR // pwszOldPassword
);
#else
DWORD
WINAPI
HostSecChangePassword(
IN PVOID, // hDllDomainContext
IN HANDLE, // hTransaction
IN LPWSTR, // pwszUserName
IN LPWSTR // pwszPassword
);
typedef
DWORD
(WINAPI * PHOSTSEC_CHANGE_PASSWORD)(
IN PVOID, // hDllDomainContext
IN HANDLE, // hTransaction
IN LPWSTR, // pwszUserName
IN LPWSTR // pwszPassword
);
#endif // ENABLE_OLD_PASSWORD_PROPAGATION
//
// HostSecTransactionComplete
//
BOOL
WINAPI
HostSecTransactionComplete(
IN PVOID, // hDllDomainContext
IN HANDLE, // hTransaction
IN DWORD // dwStatus
);
typedef
BOOL
(WINAPI * PHOSTSEC_TRANSACTION_COMPLETE)(
IN PVOID, // hDllDomainContext
IN HANDLE, // hTransaction
IN DWORD // dwStatus
);
//
// HostSecShutdown
//
DWORD
WINAPI
HostSecShutdown(
IN PVOID, // hDllDomainContext
IN DWORD // dwShutdownFlag
);
typedef
DWORD
(WINAPI * PHOSTSEC_SHUTDOWN)(
IN PVOID, // hDllDomainContext
IN DWORD // dwShutdownFlag
);
//
// HostSecHostPing
//
DWORD
WINAPI
HostSecHostPing(
IN PVOID, // hDllDomainContext
OUT PDWORD // pdwStatus
);
typedef
DWORD
(WINAPI * PHOSTSEC_HOST_PING)(
IN PVOID, // hDllDomainContext
OUT PDWORD // pdwStatus
);
//
// HostSecTransactionCompleteEx
//
BOOL
WINAPI
HostSecTransactionCompleteEx(
IN PVOID, // hDllDomainContext
IN HANDLE, // hTransaction
IN DWORD, // dwStatus
IN LPWSTR, // pwszUser
IN LPWSTR // pwszDomain
);
typedef
BOOL
(WINAPI * PHOSTSEC_TRANSACTION_COMPLETE_EX)(
IN PVOID, // hDllDomainContext
IN HANDLE, // hTransaction
IN DWORD, // dwStatus
IN LPWSTR, // pwszUser
IN LPWSTR // pwszDomain
);
//
// Function Dispatch Table: contains pointers to each of the entrypoints the ISV Security
// DLL provides to the Host Process.
//
typedef struct tagHOSTSEC_DISPATCH_VERSION_1_1
{
PHOSTSEC_VALIDATE_LOGIN HostSecValidateLogin;
PHOSTSEC_CHANGE_PASSWORD HostSecChangePassword;
PHOSTSEC_TRANSACTION_COMPLETE HostSecTransactionComplete;
PHOSTSEC_SHUTDOWN HostSecShutdown;
PHOSTSEC_HOST_PING HostSecHostPing;
} HOSTSEC_DISPATCH_VERSION_1_1, *PHOSTSEC_DISPATCH_VERSION_1_1;
typedef struct tagHOSTSEC_DISPATCH_VERSION_1_2
{
PHOSTSEC_VALIDATE_LOGIN HostSecValidateLogin;
PHOSTSEC_CHANGE_PASSWORD HostSecChangePassword;
PHOSTSEC_TRANSACTION_COMPLETE HostSecTransactionComplete;
PHOSTSEC_SHUTDOWN HostSecShutdown;
PHOSTSEC_HOST_PING HostSecHostPing;
PHOSTSEC_TRANSACTION_COMPLETE_EX HostSecTransactionCompleteEx;
} HOSTSEC_DISPATCH_VERSION_1_2, *PHOSTSEC_DISPATCH_VERSION_1_2;
typedef HOSTSEC_DISPATCH_VERSION_1_2 HOSTSEC_DISPATCH_CURRENT_VERSION;
typedef HOSTSEC_DISPATCH_CURRENT_VERSION *PHOSTSEC_DISPATCH_CURRENT_VERSION;
//
// HostSecShutdown uses following values (dwShutdownFlag) to indicate Security DLL which
// way cleanup should be done.
//
// NORMAL - Host Process will not initiate any more transactions. DLL should reject
// any new transactions from the host. Host Process will continue to call
// HostSecTransactionComplete() with any outstanding host initiated completions.
//
// DONE - Host Process has completed all host initiated transactions. DLL can terminate
// host communications and free up any system resources it has acquired.
//
// ABORT - Security DLL should abort all host communications and attempt to release
// all system resources it has acquired.
//
#define HOSTSEC_SHUTDOWN_NORMAL (1)
#define HOSTSEC_SHUTDOWN_DONE (2)
#define HOSTSEC_SHUTDOWN_ABORT (3)
//
// HostSecHostPing returns following values as status (pdwStatus) of host connection.
//
// LOCAL_CONFIG_ERROR - Local configuration error occurred.
//
// REMOTE_TP_UNAVAILABLE_RETRY - Remote TP is not available, retry could be done.
//
// REMOTE_TP_UNAVAILABLE_NORETRY - Remote TP is not available, retry should not be done.
//
// REMOTE_UNREACHABLE - Host is un-reachable.
//
#define HOSTSEC_PING_LOCAL_CONFIG_ERROR (1)
#define HOSTSEC_PING_REMOTE_TP_UNAVAILABLE_RETRY (2)
#define HOSTSEC_PING_REMOTE_TP_UNAVAILABLE_NORETRY (3)
#define HOSTSEC_PING_REMOTE_UNREACHABLE (4)
#ifdef __cplusplus
}
#endif
#pragma option pop /*P_O_Pop*/
#endif // __MDSI_H__