Windows NT 4.0 source code leak
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

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