windows-nt/Source/XPSP1/NT/ds/security/protocols/xtcb/server.h
2020-09-26 16:20:57 +08:00

90 lines
2.1 KiB
C

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1997.
//
// File: server.h
//
// Contents:
//
// Classes:
//
// Functions:
//
// History: 3-14-97 RichardW Created
//
//----------------------------------------------------------------------------
#ifndef __SERVER_H__
#define __SERVER_H__
typedef struct _XTCB_AUTH_REQ_MESSAGE {
STRING Challenge ;
STRING Response ;
STRING UserName ;
} XTCB_AUTH_REQ_MESSAGE, * PXTCB_AUTH_REQ_MESSAGE ;
typedef struct _XTCB_AUTH_RESP_MESSAGE {
NTSTATUS Result ;
NTSTATUS SubCode ;
PUCHAR AuthInfo ;
ULONG AuthInfoLength ;
} XTCB_AUTH_RESP_MESSAGE, * PXTCB_AUTH_RESP_MESSAGE ;
typedef enum {
XtcbSrvAuthReq,
XtcbSrvAuthResp,
XtcbSrvMax
} XTCB_SERVER_MESSAGE_CODE ;
#define XTCB_SERVER_MESSAGE_TAG 'S5DM'
#define XTCB_MESSAGE_SELF_RELATIVE 0x00000001 // Pointers are offsets
#define XTCB_MESSAGE_ONE_BLOCK 0x00000002 // Pointers are within block
typedef struct _XTCB_SERVER_MESSAGE {
ULONG Tag ;
XTCB_SERVER_MESSAGE_CODE Code ;
ULONG Flags ;
ULONG DataLength ;
union {
XTCB_AUTH_REQ_MESSAGE AuthReq ;
XTCB_AUTH_RESP_MESSAGE AuthResp ;
} Message ;
UCHAR Data[1] ;
} XTCB_SERVER_MESSAGE, * PXTCB_SERVER_MESSAGE ;
#define XtcbMessageLength( x ) ( sizeof( XTCB_SERVER_MESSAGE ) - 1 + \
((PXTCB_SERVER_MESSAGE) x)->DataLength )
NTSTATUS
XtcbRemoteAuthHandler(
IN PVOID ProtocolSubmitBuffer,
IN PVOID ClientBufferBase,
IN ULONG SubmitBufferLength,
OUT PVOID *ProtocolReturnBuffer,
OUT PULONG ReturnBufferLength,
OUT PNTSTATUS ProtocolStatus
);
SECURITY_STATUS
XtcbAuthenticateResponse(
PSTRING Challenge,
PSTRING UserName,
PSTRING Response,
PVOID * AuthInfo,
PULONG AuthInfoLength
);
SECURITY_STATUS
XtcbLocalLogon(
PVOID AuthInfo,
ULONG AuthInfoLength,
PLUID NewLogonId,
PHANDLE NewToken
);
#endif // __SERVER_H__