mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
494 lines
11 KiB
494 lines
11 KiB
/*****************************************************************************/
|
|
/** Microsoft LAN Manager **/
|
|
/** Copyright(c) Microsoft Corp., 1987-1990 **/
|
|
/*****************************************************************************/
|
|
/*****************************************************************************
|
|
File : acfattr.hxx
|
|
Title : acf attribute node definition file
|
|
Description : this file contains all the definitions of the
|
|
: acfattribute nodes
|
|
History :
|
|
24-Aug-1991 VibhasC Create
|
|
*****************************************************************************/
|
|
#ifndef __ACFATTR__HXX
|
|
#define __ACFATTR__HXX
|
|
|
|
#define ALLOCATE_SINGLE_NODE (0x0001)
|
|
#define ALLOCATE_ALL_NODES (0x0002)
|
|
#define ALLOCATE_DONT_FREE (0x0004)
|
|
#define ALLOCATE_FREE (0x0008)
|
|
#define ALLOCATE_ALWAYS (0x0010)
|
|
#define ALLOCATE_ON_NULL (0x0020)
|
|
#define ALLOCATE_ALL_NODES_ALIGNED (0x0102)
|
|
|
|
#define IS_ALLOCATE( AllocateType, CheckType ) ( AllocateType & CheckType )
|
|
|
|
//
|
|
// scenarios where allocate is illegal.
|
|
//
|
|
|
|
#define TRANSMIT_AS_WITH_ALLOCATE (0x0001)
|
|
#define HANDLES_WITH_ALLOCATE (0x0002)
|
|
|
|
class acf_unimpl_attr : public nbattr
|
|
{
|
|
public:
|
|
acf_unimpl_attr( ATTR_T At ) : nbattr( At )
|
|
{
|
|
}
|
|
virtual
|
|
node_state SCheck();
|
|
|
|
virtual
|
|
BOOL IsAcfAttr()
|
|
{
|
|
return TRUE;
|
|
}
|
|
};
|
|
|
|
class acf_simple_attr : public nbattr
|
|
{
|
|
public:
|
|
acf_simple_attr( ATTR_T At ) : nbattr( At )
|
|
{
|
|
}
|
|
|
|
virtual
|
|
node_state SCheck();
|
|
|
|
virtual
|
|
BOOL IsAcfAttr()
|
|
{
|
|
return TRUE;
|
|
}
|
|
};
|
|
|
|
class acf_complex_attr : public nbattr
|
|
{
|
|
private:
|
|
unsigned int fCheckConflict : 1;
|
|
public:
|
|
acf_complex_attr( ATTR_T At );
|
|
|
|
void SetCheckConflict()
|
|
{
|
|
fCheckConflict = 1;
|
|
}
|
|
|
|
void ResetCheckConflict()
|
|
{
|
|
fCheckConflict = 0;
|
|
}
|
|
|
|
BOOL NeedToCheckConflict()
|
|
{
|
|
return (BOOL)( fCheckConflict == 1 );
|
|
}
|
|
|
|
virtual
|
|
node_state SCheck();
|
|
|
|
virtual
|
|
BOOL IsAcfAttr()
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
void CheckAnyConflict( ATTR_T );
|
|
};
|
|
|
|
class node_represent_as : public acf_unimpl_attr
|
|
{
|
|
private:
|
|
char * pRepresentName;
|
|
public:
|
|
node_represent_as( char *p ): acf_unimpl_attr( ATTR_REPRESENT_AS )
|
|
{
|
|
pRepresentName = p;
|
|
}
|
|
};
|
|
|
|
class node_byte_count : public acf_simple_attr
|
|
{
|
|
private:
|
|
char * pByteCountParamName;
|
|
public:
|
|
node_byte_count( char *p ) : acf_simple_attr( ATTR_BYTE_COUNT )
|
|
{
|
|
pByteCountParamName = p;
|
|
}
|
|
|
|
char * GetByteCountParamName()
|
|
{
|
|
return pByteCountParamName;
|
|
}
|
|
virtual
|
|
node_state SCheck();
|
|
|
|
};
|
|
|
|
class node_notify : public acf_simple_attr
|
|
{
|
|
public:
|
|
node_notify() : acf_simple_attr( ATTR_NOTIFY )
|
|
{
|
|
}
|
|
};
|
|
|
|
class node_code : public acf_complex_attr
|
|
{
|
|
public:
|
|
node_code() : acf_complex_attr( ATTR_CODE )
|
|
{
|
|
}
|
|
virtual
|
|
node_state SCheck();
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// nocode attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_nocode : public acf_complex_attr
|
|
{
|
|
public:
|
|
node_nocode() : acf_complex_attr( ATTR_NOCODE )
|
|
{
|
|
}
|
|
virtual
|
|
node_state SCheck();
|
|
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// interpret and nointerpret attributes
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_interpret : public acf_complex_attr
|
|
{
|
|
public:
|
|
node_interpret() : acf_complex_attr( ATTR_INTERPRET )
|
|
{
|
|
}
|
|
virtual
|
|
node_state SCheck();
|
|
};
|
|
|
|
class node_nointerpret : public acf_complex_attr
|
|
{
|
|
public:
|
|
node_nointerpret() : acf_complex_attr( ATTR_NOINTERPRET )
|
|
{
|
|
}
|
|
virtual
|
|
node_state SCheck();
|
|
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// encode and decode attributes
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_encode : public acf_complex_attr
|
|
{
|
|
public:
|
|
node_encode() : acf_complex_attr( ATTR_ENCODE )
|
|
{
|
|
}
|
|
virtual
|
|
node_state SCheck();
|
|
};
|
|
|
|
class node_decode : public acf_complex_attr
|
|
{
|
|
public:
|
|
node_decode() : acf_complex_attr( ATTR_DECODE )
|
|
{
|
|
}
|
|
virtual
|
|
node_state SCheck();
|
|
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// inline attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_inline : public acf_complex_attr
|
|
{
|
|
public:
|
|
node_inline() : acf_complex_attr( ATTR_INLINE )
|
|
{
|
|
}
|
|
virtual
|
|
node_state SCheck();
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// outofline attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_outofline : public acf_complex_attr
|
|
{
|
|
public:
|
|
node_outofline() : acf_complex_attr( ATTR_OUTOFLINE )
|
|
{
|
|
}
|
|
virtual
|
|
node_state SCheck();
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// ptr_size attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_ptr_size : public acf_unimpl_attr
|
|
{
|
|
public:
|
|
node_ptr_size() : acf_unimpl_attr( ATTR_PTRSIZE )
|
|
{
|
|
}
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// callquota attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_callquota : public acf_unimpl_attr
|
|
{
|
|
public:
|
|
node_callquota() : acf_unimpl_attr( ATTR_CALLQUOTA )
|
|
{
|
|
}
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// callbackquota attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_callbackquota : public acf_unimpl_attr
|
|
{
|
|
public:
|
|
node_callbackquota() : acf_unimpl_attr( ATTR_CALLBACKQUOTA )
|
|
{
|
|
}
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// clientquota attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_clientquota : public acf_unimpl_attr
|
|
{
|
|
public:
|
|
node_clientquota() : acf_unimpl_attr( ATTR_CLIENTQUOTA )
|
|
{
|
|
}
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// enable_allocate attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_enable_allocate : public acf_unimpl_attr
|
|
{
|
|
public:
|
|
node_enable_allocate() : acf_unimpl_attr(ATTR_ENABLE_ALLOCATE)
|
|
{
|
|
}
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// usr_marshall attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_usr_marshall : public acf_unimpl_attr
|
|
{
|
|
public:
|
|
node_usr_marshall() : acf_unimpl_attr(ATTR_USR_MARSHALL)
|
|
{
|
|
}
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// serverquota attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_serverquota : public acf_unimpl_attr
|
|
{
|
|
public:
|
|
node_serverquota() : acf_unimpl_attr( ATTR_SERVERQUOTA )
|
|
{
|
|
}
|
|
};
|
|
|
|
class node_explicit : public acf_unimpl_attr
|
|
{
|
|
public:
|
|
node_explicit() : acf_unimpl_attr( ATTR_EXPLICIT )
|
|
{
|
|
};
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// implicit handle attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_implicit : public acf_complex_attr
|
|
{
|
|
public:
|
|
char * pHandleID;
|
|
node_skl * pHandleType;
|
|
public:
|
|
node_implicit( node_skl *, char *);
|
|
|
|
void ImplicitHandleDetails( node_skl**, char **);
|
|
|
|
virtual
|
|
node_state SCheck();
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// auto handle attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_auto : public acf_complex_attr
|
|
{
|
|
public:
|
|
node_auto() : acf_complex_attr(ATTR_AUTO )
|
|
{
|
|
}
|
|
virtual
|
|
node_state SCheck();
|
|
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// heap attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_heap : public acf_unimpl_attr
|
|
{
|
|
public:
|
|
node_heap() : acf_unimpl_attr(ATTR_HEAP )
|
|
{
|
|
}
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// manual attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_manual : public acf_unimpl_attr
|
|
{
|
|
public:
|
|
node_manual() : acf_unimpl_attr(ATTR_MANUAL )
|
|
{
|
|
}
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// allocate attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_allocate : public acf_simple_attr
|
|
{
|
|
private:
|
|
short AllocateDetails;
|
|
public:
|
|
node_allocate( short Details) : acf_simple_attr( ATTR_ALLOCATE )
|
|
{
|
|
AllocateDetails = Details;
|
|
}
|
|
|
|
short GetAllocateDetails()
|
|
{
|
|
return AllocateDetails;
|
|
};
|
|
|
|
virtual
|
|
node_state SCheck();
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// offline attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
class node_offline : public acf_unimpl_attr
|
|
{
|
|
public:
|
|
node_offline() : acf_unimpl_attr(ATTR_OFFLINE )
|
|
{
|
|
}
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// comm_status attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
class node_commstat : public acf_unimpl_attr
|
|
{
|
|
public:
|
|
node_commstat() : acf_unimpl_attr( ATTR_COMMSTAT )
|
|
{
|
|
}
|
|
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// comm_status attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
class node_faultstat : public acf_unimpl_attr
|
|
{
|
|
public:
|
|
node_faultstat() : acf_unimpl_attr( ATTR_FAULTSTAT )
|
|
{
|
|
}
|
|
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// short_enum attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
class node_short_enum : public acf_complex_attr
|
|
{
|
|
public:
|
|
node_short_enum() : acf_complex_attr(ATTR_SHORT_ENUM)
|
|
{
|
|
}
|
|
virtual
|
|
node_state SCheck();
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// long_enum attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
class node_long_enum : public acf_complex_attr
|
|
{
|
|
public:
|
|
node_long_enum() : acf_complex_attr( ATTR_LONG_ENUM )
|
|
{
|
|
}
|
|
|
|
virtual
|
|
node_state SCheck();
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// align attribute
|
|
////////////////////////////////////////////////////////////////////////////
|
|
class node_align : public nbattr
|
|
{
|
|
private:
|
|
short AlignedByThis;
|
|
public:
|
|
node_align();
|
|
virtual
|
|
node_state SCheck()
|
|
{
|
|
return NODE_STATE_OK;
|
|
}
|
|
};
|
|
|
|
#endif // __ACFATTR__HXX
|