windows-nt/Source/XPSP1/NT/base/fs/rdr2/rdbss/smb.mrx/exsessup.h
2020-09-26 16:20:57 +08:00

87 lines
2.2 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++ BUILD Version: 0009 // Increment this if a change has global effects
Copyright (c) 1987-1993 Microsoft Corporation
Module Name:
exsessup.h
Abstract:
This is the include file that defines all constants and types for
the extended session setup SMB exchange implementation.
Author:
Balan Sethu Raman (SethuR) 06-Feb-95 Created
--*/
#ifndef _EXSESSUP_H_
#define _EXSESSUP_H_
#include <smbxchng.h>
#include "security.h"
#define IsCredentialHandleValid(pCredHandle) \
(((pCredHandle)->dwLower != 0xffffffff) && ((pCredHandle)->dwUpper != 0xffffffff))
#define IsSecurityContextHandleValid(pContextHandle) \
(((pContextHandle)->dwLower != 0xffffffff) && ((pContextHandle)->dwUpper != 0xffffffff))
typedef struct _SMBCE_EXTENDED_SESSION_ {
SMBCE_SESSION;
PCHAR pServerResponseBlob;
ULONG ServerResponseBlobLength;
} SMBCE_EXTENDED_SESSION, *PSMBCE_EXTENDED_SESSION;
typedef struct _SMB_EXTENDED_SESSION_SETUP_EXCHANGE {
SMB_EXCHANGE;
BOOLEAN Reparse;
BOOLEAN FirstSessionSetup; // It is not waiting for other session setup
BOOLEAN RequestPosted;
PVOID pActualBuffer; // Originally allocated buffer
PVOID pBuffer; // Start of header
PMDL pBufferAsMdl;
ULONG BufferLength;
ULONG ResponseLength;
PVOID pServerResponseBlob;
ULONG ServerResponseBlobOffset;
ULONG ServerResponseBlobLength;
PSMBCE_RESUMPTION_CONTEXT pResumptionContext;
} SMB_EXTENDED_SESSION_SETUP_EXCHANGE, *PSMB_EXTENDED_SESSION_SETUP_EXCHANGE;
extern NTSTATUS
ValidateServerExtendedSessionSetupResponse(
PSMB_EXTENDED_SESSION_SETUP_EXCHANGE pExchange,
PVOID pServerResponseBlob,
ULONG ServerResponseBlobLength);
extern NTSTATUS
SmbExtSecuritySessionSetupExchangeFinalize(
PSMB_EXCHANGE pExchange,
BOOLEAN *pPostFinalize);
extern NTSTATUS
SmbCeInitializeExtendedSessionSetupExchange(
PSMB_EXCHANGE* pExchangePtr,
PMRX_V_NET_ROOT pVNetRoot);
extern VOID
SmbCeDiscardExtendedSessionSetupExchange(
PSMB_EXTENDED_SESSION_SETUP_EXCHANGE pExchange);
extern SMB_EXCHANGE_DISPATCH_VECTOR
ExtendedSessionSetupExchangeDispatch;
#endif // _EXSESSUP_H_