; 
; Exports of file NETUI1.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY NETUI1.dll
EXPORTS
; public: __cdecl ADMIN_AUTHORITY::ADMIN_AUTHORITY(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long,unsigned long,int) __ptr64
??0ADMIN_AUTHORITY@@QEAA@PEBGKKKKH@Z
; public: __cdecl ALIAS_ENUM::ALIAS_ENUM(class SAM_DOMAIN & __ptr64,unsigned int) __ptr64
??0ALIAS_ENUM@@QEAA@AEAVSAM_DOMAIN@@I@Z
; public: __cdecl ALIAS_ENUM_ITER::ALIAS_ENUM_ITER(class ALIAS_ENUM & __ptr64) __ptr64
??0ALIAS_ENUM_ITER@@QEAA@AEAVALIAS_ENUM@@@Z
; public: __cdecl ALIAS_ENUM_OBJ::ALIAS_ENUM_OBJ(void) __ptr64
??0ALIAS_ENUM_OBJ@@QEAA@XZ
; public: __cdecl ALIAS_STR::ALIAS_STR(unsigned short const * __ptr64) __ptr64
??0ALIAS_STR@@QEAA@PEBG@Z
; public: __cdecl ALLOC_STR::ALLOC_STR(unsigned short * __ptr64,unsigned int) __ptr64
??0ALLOC_STR@@QEAA@PEAGI@Z
; public: __cdecl API_SESSION::API_SESSION(unsigned short const * __ptr64,int) __ptr64
??0API_SESSION@@QEAA@PEBGH@Z
; protected: __cdecl BASE::BASE(void) __ptr64
??0BASE@@IEAA@XZ
; public: __cdecl BROWSE_DOMAIN_ENUM::BROWSE_DOMAIN_ENUM(unsigned long,unsigned long * __ptr64) __ptr64
??0BROWSE_DOMAIN_ENUM@@QEAA@KPEAK@Z
; public: __cdecl BROWSE_DOMAIN_INFO::BROWSE_DOMAIN_INFO(unsigned short const * __ptr64,unsigned long) __ptr64
??0BROWSE_DOMAIN_INFO@@QEAA@PEBGK@Z
; public: __cdecl CHARDEVQ1_ENUM::CHARDEVQ1_ENUM(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0CHARDEVQ1_ENUM@@QEAA@PEBG0@Z
; public: __cdecl CHARDEVQ1_ENUM_ITER::CHARDEVQ1_ENUM_ITER(class CHARDEVQ1_ENUM & __ptr64) __ptr64
??0CHARDEVQ1_ENUM_ITER@@QEAA@AEAVCHARDEVQ1_ENUM@@@Z
; public: __cdecl CHARDEVQ1_ENUM_OBJ::CHARDEVQ1_ENUM_OBJ(void) __ptr64
??0CHARDEVQ1_ENUM_OBJ@@QEAA@XZ
; protected: __cdecl CHARDEVQ_ENUM::CHARDEVQ_ENUM(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned int) __ptr64
??0CHARDEVQ_ENUM@@IEAA@PEBG0I@Z
; protected: __cdecl COMPUTER::COMPUTER(unsigned short const * __ptr64) __ptr64
??0COMPUTER@@IEAA@PEBG@Z
; public: __cdecl CONN0_ENUM::CONN0_ENUM(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0CONN0_ENUM@@QEAA@PEBG0@Z
; public: __cdecl CONN0_ENUM_ITER::CONN0_ENUM_ITER(class CONN0_ENUM & __ptr64) __ptr64
??0CONN0_ENUM_ITER@@QEAA@AEAVCONN0_ENUM@@@Z
; public: __cdecl CONN0_ENUM_OBJ::CONN0_ENUM_OBJ(void) __ptr64
??0CONN0_ENUM_OBJ@@QEAA@XZ
; public: __cdecl CONN1_ENUM::CONN1_ENUM(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0CONN1_ENUM@@QEAA@PEBG0@Z
; public: __cdecl CONN1_ENUM_ITER::CONN1_ENUM_ITER(class CONN1_ENUM & __ptr64) __ptr64
??0CONN1_ENUM_ITER@@QEAA@AEAVCONN1_ENUM@@@Z
; public: __cdecl CONN1_ENUM_OBJ::CONN1_ENUM_OBJ(void) __ptr64
??0CONN1_ENUM_OBJ@@QEAA@XZ
; protected: __cdecl CONN_ENUM::CONN_ENUM(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned int) __ptr64
??0CONN_ENUM@@IEAA@PEBG0I@Z
; public: __cdecl CONTEXT_ENUM::CONTEXT_ENUM(unsigned long) __ptr64
??0CONTEXT_ENUM@@QEAA@K@Z
; public: __cdecl CONTEXT_ENUM_ITER::CONTEXT_ENUM_ITER(class CONTEXT_ENUM & __ptr64) __ptr64
??0CONTEXT_ENUM_ITER@@QEAA@AEAVCONTEXT_ENUM@@@Z
; public: __cdecl CONTEXT_ENUM_OBJ::CONTEXT_ENUM_OBJ(void) __ptr64
??0CONTEXT_ENUM_OBJ@@QEAA@XZ
; public: __cdecl DEVICE2::DEVICE2(unsigned short const * __ptr64) __ptr64
??0DEVICE2@@QEAA@PEBG@Z
; public: __cdecl DEVICE::DEVICE(unsigned short const * __ptr64) __ptr64
??0DEVICE@@QEAA@PEBG@Z
; public: __cdecl DOMAIN0_ENUM::DOMAIN0_ENUM(unsigned short const * __ptr64) __ptr64
??0DOMAIN0_ENUM@@QEAA@PEBG@Z
; public: __cdecl DOMAIN0_ENUM_ITER::DOMAIN0_ENUM_ITER(class DOMAIN0_ENUM & __ptr64) __ptr64
??0DOMAIN0_ENUM_ITER@@QEAA@AEAVDOMAIN0_ENUM@@@Z
; public: __cdecl DOMAIN0_ENUM_OBJ::DOMAIN0_ENUM_OBJ(void) __ptr64
??0DOMAIN0_ENUM_OBJ@@QEAA@XZ
; public: __cdecl DOMAIN::DOMAIN(unsigned short const * __ptr64,unsigned short const * __ptr64,int) __ptr64
??0DOMAIN@@QEAA@PEBG0H@Z
; public: __cdecl DOMAIN::DOMAIN(unsigned short const * __ptr64,int) __ptr64
??0DOMAIN@@QEAA@PEBGH@Z
; protected: __cdecl DOMAIN_ENUM::DOMAIN_ENUM(unsigned short const * __ptr64,unsigned int) __ptr64
??0DOMAIN_ENUM@@IEAA@PEBGI@Z
; public: __cdecl DOMAIN_WITH_DC_CACHE::DOMAIN_WITH_DC_CACHE(unsigned short const * __ptr64,unsigned short const * __ptr64,int) __ptr64
??0DOMAIN_WITH_DC_CACHE@@QEAA@PEBG0H@Z
; public: __cdecl DOMAIN_WITH_DC_CACHE::DOMAIN_WITH_DC_CACHE(unsigned short const * __ptr64,int) __ptr64
??0DOMAIN_WITH_DC_CACHE@@QEAA@PEBGH@Z
; public: __cdecl ENUM_CALLER::ENUM_CALLER(void) __ptr64
??0ENUM_CALLER@@QEAA@XZ
; public: __cdecl ENUM_CALLER_LM_OBJ::ENUM_CALLER_LM_OBJ(class LOCATION const & __ptr64) __ptr64
??0ENUM_CALLER_LM_OBJ@@QEAA@AEBVLOCATION@@@Z
; protected: __cdecl ENUM_OBJ_BASE::ENUM_OBJ_BASE(void) __ptr64
??0ENUM_OBJ_BASE@@IEAA@XZ
; public: __cdecl FILE2_ENUM::FILE2_ENUM(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0FILE2_ENUM@@QEAA@PEBG00@Z
; public: __cdecl FILE2_ENUM_ITER::FILE2_ENUM_ITER(class FILE2_ENUM & __ptr64) __ptr64
??0FILE2_ENUM_ITER@@QEAA@AEAVFILE2_ENUM@@@Z
; public: __cdecl FILE2_ENUM_OBJ::FILE2_ENUM_OBJ(void) __ptr64
??0FILE2_ENUM_OBJ@@QEAA@XZ
; public: __cdecl FILE3_ENUM::FILE3_ENUM(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0FILE3_ENUM@@QEAA@PEBG00@Z
; public: __cdecl FILE3_ENUM_ITER::FILE3_ENUM_ITER(class FILE3_ENUM & __ptr64) __ptr64
??0FILE3_ENUM_ITER@@QEAA@AEAVFILE3_ENUM@@@Z
; public: __cdecl FILE3_ENUM_OBJ::FILE3_ENUM_OBJ(void) __ptr64
??0FILE3_ENUM_OBJ@@QEAA@XZ
; protected: __cdecl FILE_ENUM::FILE_ENUM(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned int) __ptr64
??0FILE_ENUM@@IEAA@PEBG00I@Z
; public: __cdecl GROUP0_ENUM::GROUP0_ENUM(class LOCATION const & __ptr64,unsigned short const * __ptr64) __ptr64
??0GROUP0_ENUM@@QEAA@AEBVLOCATION@@PEBG@Z
; public: __cdecl GROUP0_ENUM::GROUP0_ENUM(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0GROUP0_ENUM@@QEAA@PEBG0@Z
; public: __cdecl GROUP0_ENUM::GROUP0_ENUM(enum LOCATION_TYPE,unsigned short const * __ptr64) __ptr64
??0GROUP0_ENUM@@QEAA@W4LOCATION_TYPE@@PEBG@Z
; public: __cdecl GROUP0_ENUM_ITER::GROUP0_ENUM_ITER(class GROUP0_ENUM & __ptr64) __ptr64
??0GROUP0_ENUM_ITER@@QEAA@AEAVGROUP0_ENUM@@@Z
; public: __cdecl GROUP0_ENUM_OBJ::GROUP0_ENUM_OBJ(void) __ptr64
??0GROUP0_ENUM_OBJ@@QEAA@XZ
; public: __cdecl GROUP1_ENUM::GROUP1_ENUM(class LOCATION const & __ptr64) __ptr64
??0GROUP1_ENUM@@QEAA@AEBVLOCATION@@@Z
; public: __cdecl GROUP1_ENUM::GROUP1_ENUM(unsigned short const * __ptr64) __ptr64
??0GROUP1_ENUM@@QEAA@PEBG@Z
; public: __cdecl GROUP1_ENUM::GROUP1_ENUM(enum LOCATION_TYPE) __ptr64
??0GROUP1_ENUM@@QEAA@W4LOCATION_TYPE@@@Z
; public: __cdecl GROUP1_ENUM_ITER::GROUP1_ENUM_ITER(class GROUP1_ENUM & __ptr64) __ptr64
??0GROUP1_ENUM_ITER@@QEAA@AEAVGROUP1_ENUM@@@Z
; public: __cdecl GROUP1_ENUM_OBJ::GROUP1_ENUM_OBJ(void) __ptr64
??0GROUP1_ENUM_OBJ@@QEAA@XZ
; public: __cdecl GROUP::GROUP(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0GROUP@@QEAA@PEBG0@Z
; public: __cdecl GROUP::GROUP(unsigned short const * __ptr64,class LOCATION const & __ptr64) __ptr64
??0GROUP@@QEAA@PEBGAEBVLOCATION@@@Z
; public: __cdecl GROUP::GROUP(unsigned short const * __ptr64,enum LOCATION_TYPE) __ptr64
??0GROUP@@QEAA@PEBGW4LOCATION_TYPE@@@Z
; public: __cdecl GROUP_0::GROUP_0(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0GROUP_0@@QEAA@PEBG0@Z
; public: __cdecl GROUP_0::GROUP_0(unsigned short const * __ptr64,class LOCATION const & __ptr64) __ptr64
??0GROUP_0@@QEAA@PEBGAEBVLOCATION@@@Z
; public: __cdecl GROUP_0::GROUP_0(unsigned short const * __ptr64,enum LOCATION_TYPE) __ptr64
??0GROUP_0@@QEAA@PEBGW4LOCATION_TYPE@@@Z
; public: __cdecl GROUP_1::GROUP_1(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0GROUP_1@@QEAA@PEBG0@Z
; public: __cdecl GROUP_1::GROUP_1(unsigned short const * __ptr64,class LOCATION const & __ptr64) __ptr64
??0GROUP_1@@QEAA@PEBGAEBVLOCATION@@@Z
; public: __cdecl GROUP_1::GROUP_1(unsigned short const * __ptr64,enum LOCATION_TYPE) __ptr64
??0GROUP_1@@QEAA@PEBGW4LOCATION_TYPE@@@Z
; protected: __cdecl GROUP_ENUM::GROUP_ENUM(class LOCATION const & __ptr64,unsigned int,unsigned short const * __ptr64) __ptr64
??0GROUP_ENUM@@IEAA@AEBVLOCATION@@IPEBG@Z
; protected: __cdecl GROUP_ENUM::GROUP_ENUM(unsigned short const * __ptr64,unsigned int,unsigned short const * __ptr64) __ptr64
??0GROUP_ENUM@@IEAA@PEBGI0@Z
; protected: __cdecl GROUP_ENUM::GROUP_ENUM(enum LOCATION_TYPE,unsigned int,unsigned short const * __ptr64) __ptr64
??0GROUP_ENUM@@IEAA@W4LOCATION_TYPE@@IPEBG@Z
; public: __cdecl GROUP_MEMB::GROUP_MEMB(class LOCATION const & __ptr64,unsigned short const * __ptr64) __ptr64
??0GROUP_MEMB@@QEAA@AEBVLOCATION@@PEBG@Z
; public: __cdecl ITER_DEVICE::ITER_DEVICE(enum LMO_DEVICE,enum LMO_DEV_USAGE) __ptr64
??0ITER_DEVICE@@QEAA@W4LMO_DEVICE@@W4LMO_DEV_USAGE@@@Z
; public: __cdecl ITER_SL_BROWSE_DOMAIN_INFO::ITER_SL_BROWSE_DOMAIN_INFO(class SLIST & __ptr64) __ptr64
??0ITER_SL_BROWSE_DOMAIN_INFO@@QEAA@AEAVSLIST@@@Z
; public: __cdecl ITER_SL_LM_RESUME_BUFFER::ITER_SL_LM_RESUME_BUFFER(class SLIST & __ptr64) __ptr64
??0ITER_SL_LM_RESUME_BUFFER@@QEAA@AEAVSLIST@@@Z
; public: __cdecl LM_CONFIG::LM_CONFIG(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0LM_CONFIG@@QEAA@PEBG00@Z
; protected: __cdecl LM_ENUM::LM_ENUM(unsigned int) __ptr64
??0LM_ENUM@@IEAA@I@Z
; protected: __cdecl LM_ENUM_ITER::LM_ENUM_ITER(class LM_ENUM & __ptr64) __ptr64
??0LM_ENUM_ITER@@IEAA@AEAVLM_ENUM@@@Z
; protected: __cdecl LM_FILE::LM_FILE(unsigned short const * __ptr64,unsigned long) __ptr64
??0LM_FILE@@IEAA@PEBGK@Z
; public: __cdecl LM_FILE_2::LM_FILE_2(unsigned short const * __ptr64,unsigned long) __ptr64
??0LM_FILE_2@@QEAA@PEBGK@Z
; public: __cdecl LM_FILE_3::LM_FILE_3(unsigned short const * __ptr64,unsigned long) __ptr64
??0LM_FILE_3@@QEAA@PEBGK@Z
; public: __cdecl LM_MESSAGE::LM_MESSAGE(class LOCATION & __ptr64) __ptr64
??0LM_MESSAGE@@QEAA@AEAVLOCATION@@@Z
; public: __cdecl LM_MESSAGE::LM_MESSAGE(unsigned short const * __ptr64) __ptr64
??0LM_MESSAGE@@QEAA@PEBG@Z
; public: __cdecl LM_MESSAGE::LM_MESSAGE(enum LOCATION_TYPE) __ptr64
??0LM_MESSAGE@@QEAA@W4LOCATION_TYPE@@@Z
; public: __cdecl LM_OBJ::LM_OBJ(void) __ptr64
??0LM_OBJ@@QEAA@XZ
; protected: __cdecl LM_OBJ_BASE::LM_OBJ_BASE(int) __ptr64
??0LM_OBJ_BASE@@IEAA@H@Z
; public: __cdecl LM_RESUME_BUFFER::LM_RESUME_BUFFER(class LM_RESUME_ENUM * __ptr64,unsigned int,unsigned char * __ptr64) __ptr64
??0LM_RESUME_BUFFER@@QEAA@PEAVLM_RESUME_ENUM@@IPEAE@Z
; protected: __cdecl LM_RESUME_ENUM::LM_RESUME_ENUM(unsigned int,int) __ptr64
??0LM_RESUME_ENUM@@IEAA@IH@Z
; protected: __cdecl LM_RESUME_ENUM_ITER::LM_RESUME_ENUM_ITER(class LM_RESUME_ENUM & __ptr64) __ptr64
??0LM_RESUME_ENUM_ITER@@IEAA@AEAVLM_RESUME_ENUM@@@Z
; public: __cdecl LM_SERVICE::LM_SERVICE(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0LM_SERVICE@@QEAA@PEBG0@Z
; protected: __cdecl LM_SESSION::LM_SESSION(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0LM_SESSION@@IEAA@PEBG0@Z
; protected: __cdecl LM_SESSION::LM_SESSION(unsigned short const * __ptr64,class LOCATION const & __ptr64) __ptr64
??0LM_SESSION@@IEAA@PEBGAEBVLOCATION@@@Z
; protected: __cdecl LM_SESSION::LM_SESSION(unsigned short const * __ptr64,enum LOCATION_TYPE) __ptr64
??0LM_SESSION@@IEAA@PEBGW4LOCATION_TYPE@@@Z
; public: __cdecl LM_SESSION_0::LM_SESSION_0(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0LM_SESSION_0@@QEAA@PEBG0@Z
; public: __cdecl LM_SESSION_0::LM_SESSION_0(unsigned short const * __ptr64,class LOCATION const & __ptr64) __ptr64
??0LM_SESSION_0@@QEAA@PEBGAEBVLOCATION@@@Z
; public: __cdecl LM_SESSION_0::LM_SESSION_0(unsigned short const * __ptr64,enum LOCATION_TYPE) __ptr64
??0LM_SESSION_0@@QEAA@PEBGW4LOCATION_TYPE@@@Z
; public: __cdecl LM_SESSION_10::LM_SESSION_10(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0LM_SESSION_10@@QEAA@PEBG0@Z
; public: __cdecl LM_SESSION_10::LM_SESSION_10(unsigned short const * __ptr64,class LOCATION const & __ptr64) __ptr64
??0LM_SESSION_10@@QEAA@PEBGAEBVLOCATION@@@Z
; public: __cdecl LM_SESSION_10::LM_SESSION_10(unsigned short const * __ptr64,enum LOCATION_TYPE) __ptr64
??0LM_SESSION_10@@QEAA@PEBGW4LOCATION_TYPE@@@Z
; public: __cdecl LM_SESSION_1::LM_SESSION_1(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0LM_SESSION_1@@QEAA@PEBG0@Z
; public: __cdecl LM_SESSION_1::LM_SESSION_1(unsigned short const * __ptr64,class LOCATION const & __ptr64) __ptr64
??0LM_SESSION_1@@QEAA@PEBGAEBVLOCATION@@@Z
; public: __cdecl LM_SESSION_1::LM_SESSION_1(unsigned short const * __ptr64,enum LOCATION_TYPE) __ptr64
??0LM_SESSION_1@@QEAA@PEBGW4LOCATION_TYPE@@@Z
; public: __cdecl LM_SESSION_2::LM_SESSION_2(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0LM_SESSION_2@@QEAA@PEBG0@Z
; public: __cdecl LM_SESSION_2::LM_SESSION_2(unsigned short const * __ptr64,class LOCATION const & __ptr64) __ptr64
??0LM_SESSION_2@@QEAA@PEBGAEBVLOCATION@@@Z
; public: __cdecl LM_SESSION_2::LM_SESSION_2(unsigned short const * __ptr64,enum LOCATION_TYPE) __ptr64
??0LM_SESSION_2@@QEAA@PEBGW4LOCATION_TYPE@@@Z
; public: __cdecl LM_SRVRES::LM_SRVRES(void) __ptr64
??0LM_SRVRES@@QEAA@XZ
; public: __cdecl LOCAL_USER::LOCAL_USER(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0LOCAL_USER@@QEAA@PEBG0@Z
; public: __cdecl LOCAL_USER::LOCAL_USER(enum LOCATION_TYPE) __ptr64
??0LOCAL_USER@@QEAA@W4LOCATION_TYPE@@@Z
; public: __cdecl LOCATION::LOCATION(class LOCATION const & __ptr64) __ptr64
??0LOCATION@@QEAA@AEBV0@@Z
; public: __cdecl LOCATION::LOCATION(unsigned short const * __ptr64,int) __ptr64
??0LOCATION@@QEAA@PEBGH@Z
; public: __cdecl LOCATION::LOCATION(enum LOCATION_TYPE,int) __ptr64
??0LOCATION@@QEAA@W4LOCATION_TYPE@@H@Z
; protected: __cdecl LOC_LM_ENUM::LOC_LM_ENUM(class LOCATION const & __ptr64,unsigned int) __ptr64
??0LOC_LM_ENUM@@IEAA@AEBVLOCATION@@I@Z
; protected: __cdecl LOC_LM_ENUM::LOC_LM_ENUM(unsigned short const * __ptr64,unsigned int) __ptr64
??0LOC_LM_ENUM@@IEAA@PEBGI@Z
; protected: __cdecl LOC_LM_ENUM::LOC_LM_ENUM(enum LOCATION_TYPE,unsigned int) __ptr64
??0LOC_LM_ENUM@@IEAA@W4LOCATION_TYPE@@I@Z
; public: __cdecl LOC_LM_OBJ::LOC_LM_OBJ(class LOCATION const & __ptr64,int) __ptr64
??0LOC_LM_OBJ@@QEAA@AEBVLOCATION@@H@Z
; public: __cdecl LOC_LM_OBJ::LOC_LM_OBJ(unsigned short const * __ptr64,int) __ptr64
??0LOC_LM_OBJ@@QEAA@PEBGH@Z
; public: __cdecl LOC_LM_OBJ::LOC_LM_OBJ(enum LOCATION_TYPE,int) __ptr64
??0LOC_LM_OBJ@@QEAA@W4LOCATION_TYPE@@H@Z
; protected: __cdecl LOC_LM_RESUME_ENUM::LOC_LM_RESUME_ENUM(class LOCATION const & __ptr64,unsigned int,int) __ptr64
??0LOC_LM_RESUME_ENUM@@IEAA@AEBVLOCATION@@IH@Z
; protected: __cdecl LOC_LM_RESUME_ENUM::LOC_LM_RESUME_ENUM(unsigned short const * __ptr64,unsigned int,int) __ptr64
??0LOC_LM_RESUME_ENUM@@IEAA@PEBGIH@Z
; protected: __cdecl LOC_LM_RESUME_ENUM::LOC_LM_RESUME_ENUM(enum LOCATION_TYPE,unsigned int,int) __ptr64
??0LOC_LM_RESUME_ENUM@@IEAA@W4LOCATION_TYPE@@IH@Z
; public: __cdecl LSA_ACCOUNT::LSA_ACCOUNT(class LSA_POLICY * __ptr64,void * __ptr64,unsigned long,unsigned short const * __ptr64,void * __ptr64) __ptr64
??0LSA_ACCOUNT@@QEAA@PEAVLSA_POLICY@@PEAXKPEBG1@Z
; public: __cdecl LSA_ACCOUNTS_ENUM::LSA_ACCOUNTS_ENUM(class LSA_POLICY const * __ptr64) __ptr64
??0LSA_ACCOUNTS_ENUM@@QEAA@PEBVLSA_POLICY@@@Z
; public: __cdecl LSA_ACCOUNTS_ENUM_ITER::LSA_ACCOUNTS_ENUM_ITER(class LSA_ACCOUNTS_ENUM & __ptr64) __ptr64
??0LSA_ACCOUNTS_ENUM_ITER@@QEAA@AEAVLSA_ACCOUNTS_ENUM@@@Z
; public: __cdecl LSA_ACCOUNTS_ENUM_OBJ::LSA_ACCOUNTS_ENUM_OBJ(void) __ptr64
??0LSA_ACCOUNTS_ENUM_OBJ@@QEAA@XZ
; public: __cdecl LSA_ACCOUNT_PRIVILEGE_ENUM_ITER::LSA_ACCOUNT_PRIVILEGE_ENUM_ITER(class OS_PRIVILEGE_SET * __ptr64) __ptr64
??0LSA_ACCOUNT_PRIVILEGE_ENUM_ITER@@QEAA@PEAVOS_PRIVILEGE_SET@@@Z
; public: __cdecl LSA_ACCT_DOM_INFO_MEM::LSA_ACCT_DOM_INFO_MEM(int) __ptr64
??0LSA_ACCT_DOM_INFO_MEM@@QEAA@H@Z
; public: __cdecl LSA_AUDIT_EVENT_INFO_MEM::LSA_AUDIT_EVENT_INFO_MEM(int) __ptr64
??0LSA_AUDIT_EVENT_INFO_MEM@@QEAA@H@Z
; public: __cdecl LSA_DOMAIN_INFO::LSA_DOMAIN_INFO(class NLS_STR const & __ptr64,class LSA_DOMAIN_INFO const * __ptr64,class LSA_DOMAIN_INFO const * __ptr64) __ptr64
??0LSA_DOMAIN_INFO@@QEAA@AEBVNLS_STR@@PEBV1@1@Z
; protected: __cdecl LSA_ENUM::LSA_ENUM(class LSA_POLICY const * __ptr64) __ptr64
??0LSA_ENUM@@IEAA@PEBVLSA_POLICY@@@Z
; protected: __cdecl LSA_MEMORY::LSA_MEMORY(int) __ptr64
??0LSA_MEMORY@@IEAA@H@Z
; protected: __cdecl LSA_OBJECT::LSA_OBJECT(void) __ptr64
??0LSA_OBJECT@@IEAA@XZ
; public: __cdecl LSA_POLICY::LSA_POLICY(unsigned short const * __ptr64,unsigned long) __ptr64
??0LSA_POLICY@@QEAA@PEBGK@Z
; public: __cdecl LSA_PRIMARY_DOM_INFO_MEM::LSA_PRIMARY_DOM_INFO_MEM(int) __ptr64
??0LSA_PRIMARY_DOM_INFO_MEM@@QEAA@H@Z
; public: __cdecl LSA_PRIVILEGES_ENUM::LSA_PRIVILEGES_ENUM(class LSA_POLICY const * __ptr64) __ptr64
??0LSA_PRIVILEGES_ENUM@@QEAA@PEBVLSA_POLICY@@@Z
; public: __cdecl LSA_PRIVILEGES_ENUM_ITER::LSA_PRIVILEGES_ENUM_ITER(class LSA_PRIVILEGES_ENUM & __ptr64) __ptr64
??0LSA_PRIVILEGES_ENUM_ITER@@QEAA@AEAVLSA_PRIVILEGES_ENUM@@@Z
; public: __cdecl LSA_PRIVILEGES_ENUM_OBJ::LSA_PRIVILEGES_ENUM_OBJ(void) __ptr64
??0LSA_PRIVILEGES_ENUM_OBJ@@QEAA@XZ
; public: __cdecl LSA_REF_DOMAIN_MEM::LSA_REF_DOMAIN_MEM(int) __ptr64
??0LSA_REF_DOMAIN_MEM@@QEAA@H@Z
; public: __cdecl LSA_SECRET::LSA_SECRET(class NLS_STR const & __ptr64) __ptr64
??0LSA_SECRET@@QEAA@AEBVNLS_STR@@@Z
; public: __cdecl LSA_SERVER_ROLE_INFO_MEM::LSA_SERVER_ROLE_INFO_MEM(int,int) __ptr64
??0LSA_SERVER_ROLE_INFO_MEM@@QEAA@HH@Z
; public: __cdecl LSA_TRANSLATED_NAME_MEM::LSA_TRANSLATED_NAME_MEM(int) __ptr64
??0LSA_TRANSLATED_NAME_MEM@@QEAA@H@Z
; public: __cdecl LSA_TRANSLATED_SID_MEM::LSA_TRANSLATED_SID_MEM(int) __ptr64
??0LSA_TRANSLATED_SID_MEM@@QEAA@H@Z
; public: __cdecl LSA_TRUSTED_DC_LIST::LSA_TRUSTED_DC_LIST(class NLS_STR const & __ptr64,unsigned short const * __ptr64) __ptr64
??0LSA_TRUSTED_DC_LIST@@QEAA@AEBVNLS_STR@@PEBG@Z
; public: __cdecl LSA_TRUSTED_DOMAIN::LSA_TRUSTED_DOMAIN(class LSA_POLICY const & __ptr64,struct _LSA_TRUST_INFORMATION const & __ptr64,unsigned long) __ptr64
??0LSA_TRUSTED_DOMAIN@@QEAA@AEBVLSA_POLICY@@AEBU_LSA_TRUST_INFORMATION@@K@Z
; public: __cdecl LSA_TRUSTED_DOMAIN::LSA_TRUSTED_DOMAIN(class LSA_POLICY const & __ptr64,class NLS_STR const & __ptr64,void * __ptr64 const,unsigned long) __ptr64
??0LSA_TRUSTED_DOMAIN@@QEAA@AEBVLSA_POLICY@@AEBVNLS_STR@@QEAXK@Z
; public: __cdecl LSA_TRUSTED_DOMAIN::LSA_TRUSTED_DOMAIN(class LSA_POLICY const & __ptr64,void * __ptr64 const,unsigned long) __ptr64
??0LSA_TRUSTED_DOMAIN@@QEAA@AEBVLSA_POLICY@@QEAXK@Z
; public: __cdecl LSA_TRUST_INFO_MEM::LSA_TRUST_INFO_MEM(int) __ptr64
??0LSA_TRUST_INFO_MEM@@QEAA@H@Z
; public: __cdecl MEMBERSHIP_LM_OBJ::MEMBERSHIP_LM_OBJ(class LOCATION const & __ptr64,unsigned int) __ptr64
??0MEMBERSHIP_LM_OBJ@@QEAA@AEBVLOCATION@@I@Z
; protected: __cdecl NET_ACCESS::NET_ACCESS(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0NET_ACCESS@@IEAA@PEBG0@Z
; public: __cdecl NET_ACCESS_1::NET_ACCESS_1(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0NET_ACCESS_1@@QEAA@PEBG0@Z
; public: __cdecl NET_NAME::NET_NAME(unsigned short const * __ptr64,enum NETNAME_TYPE) __ptr64
??0NET_NAME@@QEAA@PEBGW4NETNAME_TYPE@@@Z
; public: __cdecl NEW_LM_OBJ::NEW_LM_OBJ(int) __ptr64
??0NEW_LM_OBJ@@QEAA@H@Z
; protected: __cdecl NT_ACCOUNT_ENUM::NT_ACCOUNT_ENUM(class SAM_DOMAIN const * __ptr64,enum _DOMAIN_DISPLAY_INFORMATION,int) __ptr64
??0NT_ACCOUNT_ENUM@@IEAA@PEBVSAM_DOMAIN@@W4_DOMAIN_DISPLAY_INFORMATION@@H@Z
; public: __cdecl NT_GROUP_ENUM::NT_GROUP_ENUM(class SAM_DOMAIN const * __ptr64) __ptr64
??0NT_GROUP_ENUM@@QEAA@PEBVSAM_DOMAIN@@@Z
; public: __cdecl NT_GROUP_ENUM_ITER::NT_GROUP_ENUM_ITER(class NT_GROUP_ENUM & __ptr64) __ptr64
??0NT_GROUP_ENUM_ITER@@QEAA@AEAVNT_GROUP_ENUM@@@Z
; public: __cdecl NT_GROUP_ENUM_OBJ::NT_GROUP_ENUM_OBJ(void) __ptr64
??0NT_GROUP_ENUM_OBJ@@QEAA@XZ
; public: __cdecl NT_MACHINE_ENUM::NT_MACHINE_ENUM(class SAM_DOMAIN const * __ptr64) __ptr64
??0NT_MACHINE_ENUM@@QEAA@PEBVSAM_DOMAIN@@@Z
; public: __cdecl NT_MACHINE_ENUM_ITER::NT_MACHINE_ENUM_ITER(class NT_MACHINE_ENUM & __ptr64) __ptr64
??0NT_MACHINE_ENUM_ITER@@QEAA@AEAVNT_MACHINE_ENUM@@@Z
; public: __cdecl NT_MACHINE_ENUM_OBJ::NT_MACHINE_ENUM_OBJ(void) __ptr64
??0NT_MACHINE_ENUM_OBJ@@QEAA@XZ
; protected: __cdecl NT_MEMORY::NT_MEMORY(void) __ptr64
??0NT_MEMORY@@IEAA@XZ
; public: __cdecl NT_USER_ENUM::NT_USER_ENUM(class SAM_DOMAIN const * __ptr64) __ptr64
??0NT_USER_ENUM@@QEAA@PEBVSAM_DOMAIN@@@Z
; public: __cdecl NT_USER_ENUM_ITER::NT_USER_ENUM_ITER(class NT_USER_ENUM & __ptr64) __ptr64
??0NT_USER_ENUM_ITER@@QEAA@AEAVNT_USER_ENUM@@@Z
; public: __cdecl NT_USER_ENUM_OBJ::NT_USER_ENUM_OBJ(void) __ptr64
??0NT_USER_ENUM_OBJ@@QEAA@XZ
; public: __cdecl OS_ACE::OS_ACE(void * __ptr64) __ptr64
??0OS_ACE@@QEAA@PEAX@Z
; public: __cdecl OS_ACL::OS_ACL(struct _ACL * __ptr64,int,class OS_SECURITY_DESCRIPTOR * __ptr64) __ptr64
??0OS_ACL@@QEAA@PEAU_ACL@@HPEAVOS_SECURITY_DESCRIPTOR@@@Z
; public: __cdecl OS_ACL_SUBJECT_ITER::OS_ACL_SUBJECT_ITER(class OS_ACL const * __ptr64,struct _GENERIC_MAPPING * __ptr64,struct _GENERIC_MAPPING * __ptr64,int,int) __ptr64
??0OS_ACL_SUBJECT_ITER@@QEAA@PEBVOS_ACL@@PEAU_GENERIC_MAPPING@@1HH@Z
; public: __cdecl OS_DACL_SUBJECT_ITER::OS_DACL_SUBJECT_ITER(class OS_ACL * __ptr64,struct _GENERIC_MAPPING * __ptr64,struct _GENERIC_MAPPING * __ptr64,int,int) __ptr64
??0OS_DACL_SUBJECT_ITER@@QEAA@PEAVOS_ACL@@PEAU_GENERIC_MAPPING@@1HH@Z
; public: __cdecl OS_LUID::OS_LUID(struct _LUID) __ptr64
??0OS_LUID@@QEAA@U_LUID@@@Z
; public: __cdecl OS_LUID::OS_LUID(void) __ptr64
??0OS_LUID@@QEAA@XZ
; public: __cdecl OS_LUID_AND_ATTRIBUTES::OS_LUID_AND_ATTRIBUTES(void) __ptr64
??0OS_LUID_AND_ATTRIBUTES@@QEAA@XZ
; protected: __cdecl OS_OBJECT_WITH_DATA::OS_OBJECT_WITH_DATA(unsigned int) __ptr64
??0OS_OBJECT_WITH_DATA@@IEAA@I@Z
; public: __cdecl OS_PRIVILEGE_SET::OS_PRIVILEGE_SET(struct _PRIVILEGE_SET * __ptr64) __ptr64
??0OS_PRIVILEGE_SET@@QEAA@PEAU_PRIVILEGE_SET@@@Z
; public: __cdecl OS_SACL_SUBJECT_ITER::OS_SACL_SUBJECT_ITER(class OS_ACL * __ptr64,struct _GENERIC_MAPPING * __ptr64,struct _GENERIC_MAPPING * __ptr64,int,int) __ptr64
??0OS_SACL_SUBJECT_ITER@@QEAA@PEAVOS_ACL@@PEAU_GENERIC_MAPPING@@1HH@Z
; public: __cdecl OS_SECURITY_DESCRIPTOR::OS_SECURITY_DESCRIPTOR(void * __ptr64,int) __ptr64
??0OS_SECURITY_DESCRIPTOR@@QEAA@PEAXH@Z
; public: __cdecl OS_SECURITY_DESCRIPTOR_CONTROL::OS_SECURITY_DESCRIPTOR_CONTROL(unsigned short * __ptr64) __ptr64
??0OS_SECURITY_DESCRIPTOR_CONTROL@@QEAA@PEAG@Z
; public: __cdecl OS_SID::OS_SID(void * __ptr64,int,class OS_SECURITY_DESCRIPTOR * __ptr64) __ptr64
??0OS_SID@@QEAA@PEAXHPEAVOS_SECURITY_DESCRIPTOR@@@Z
; public: __cdecl OS_SID::OS_SID(void * __ptr64,unsigned long,class OS_SECURITY_DESCRIPTOR * __ptr64) __ptr64
??0OS_SID@@QEAA@PEAXKPEAVOS_SECURITY_DESCRIPTOR@@@Z
; public: __cdecl SAM_ALIAS::SAM_ALIAS(class SAM_DOMAIN const & __ptr64,unsigned long,unsigned long) __ptr64
??0SAM_ALIAS@@QEAA@AEBVSAM_DOMAIN@@KK@Z
; public: __cdecl SAM_ALIAS::SAM_ALIAS(class SAM_DOMAIN const & __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
??0SAM_ALIAS@@QEAA@AEBVSAM_DOMAIN@@PEBGK@Z
; public: __cdecl SAM_DOMAIN::SAM_DOMAIN(class SAM_SERVER const & __ptr64,void * __ptr64,unsigned long) __ptr64
??0SAM_DOMAIN@@QEAA@AEBVSAM_SERVER@@PEAXK@Z
; public: __cdecl SAM_GROUP::SAM_GROUP(class SAM_DOMAIN const & __ptr64,unsigned long,unsigned long) __ptr64
??0SAM_GROUP@@QEAA@AEBVSAM_DOMAIN@@KK@Z
; protected: __cdecl SAM_MEMORY::SAM_MEMORY(int) __ptr64
??0SAM_MEMORY@@IEAA@H@Z
; protected: __cdecl SAM_OBJECT::SAM_OBJECT(void) __ptr64
??0SAM_OBJECT@@IEAA@XZ
; public: __cdecl SAM_PSWD_DOM_INFO_MEM::SAM_PSWD_DOM_INFO_MEM(int) __ptr64
??0SAM_PSWD_DOM_INFO_MEM@@QEAA@H@Z
; public: __cdecl SAM_RID_ENUMERATION_MEM::SAM_RID_ENUMERATION_MEM(int) __ptr64
??0SAM_RID_ENUMERATION_MEM@@QEAA@H@Z
; public: __cdecl SAM_RID_MEM::SAM_RID_MEM(int) __ptr64
??0SAM_RID_MEM@@QEAA@H@Z
; public: __cdecl SAM_SERVER::SAM_SERVER(unsigned short const * __ptr64,unsigned long) __ptr64
??0SAM_SERVER@@QEAA@PEBGK@Z
; public: __cdecl SAM_SID_MEM::SAM_SID_MEM(int) __ptr64
??0SAM_SID_MEM@@QEAA@H@Z
; public: __cdecl SAM_SID_NAME_USE_MEM::SAM_SID_NAME_USE_MEM(int) __ptr64
??0SAM_SID_NAME_USE_MEM@@QEAA@H@Z
; public: __cdecl SAM_USER::SAM_USER(class SAM_DOMAIN const & __ptr64,unsigned long,unsigned long) __ptr64
??0SAM_USER@@QEAA@AEBVSAM_DOMAIN@@KK@Z
; public: __cdecl SAM_USER_ENUM::SAM_USER_ENUM(class SAM_DOMAIN const * __ptr64,unsigned long,int) __ptr64
??0SAM_USER_ENUM@@QEAA@PEBVSAM_DOMAIN@@KH@Z
; public: __cdecl SAM_USER_ENUM_ITER::SAM_USER_ENUM_ITER(class SAM_USER_ENUM & __ptr64) __ptr64
??0SAM_USER_ENUM_ITER@@QEAA@AEAVSAM_USER_ENUM@@@Z
; public: __cdecl SAM_USER_ENUM_OBJ::SAM_USER_ENUM_OBJ(void) __ptr64
??0SAM_USER_ENUM_OBJ@@QEAA@XZ
; public: __cdecl SC_MANAGER::SC_MANAGER(struct SC_HANDLE__ * __ptr64) __ptr64
??0SC_MANAGER@@QEAA@PEAUSC_HANDLE__@@@Z
; public: __cdecl SC_MANAGER::SC_MANAGER(unsigned short const * __ptr64,unsigned int,enum SERVICE_DATABASE) __ptr64
??0SC_MANAGER@@QEAA@PEBGIW4SERVICE_DATABASE@@@Z
; public: __cdecl SC_SERVICE::SC_SERVICE(class SC_MANAGER const & __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned int,unsigned int,unsigned int,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned int) __ptr64
??0SC_SERVICE@@QEAA@AEBVSC_MANAGER@@PEBG1III11111I@Z
; public: __cdecl SC_SERVICE::SC_SERVICE(class SC_MANAGER const & __ptr64,unsigned short const * __ptr64,unsigned int) __ptr64
??0SC_SERVICE@@QEAA@AEBVSC_MANAGER@@PEBGI@Z
; public: __cdecl SERVER1_ENUM::SERVER1_ENUM(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
??0SERVER1_ENUM@@QEAA@PEBG0K@Z
; public: __cdecl SERVER1_ENUM_ITER::SERVER1_ENUM_ITER(class SERVER1_ENUM & __ptr64) __ptr64
??0SERVER1_ENUM_ITER@@QEAA@AEAVSERVER1_ENUM@@@Z
; public: __cdecl SERVER1_ENUM_OBJ::SERVER1_ENUM_OBJ(void) __ptr64
??0SERVER1_ENUM_OBJ@@QEAA@XZ
; public: __cdecl SERVER_0::SERVER_0(unsigned short const * __ptr64) __ptr64
??0SERVER_0@@QEAA@PEBG@Z
; public: __cdecl SERVER_1::SERVER_1(unsigned short const * __ptr64) __ptr64
??0SERVER_1@@QEAA@PEBG@Z
; public: __cdecl SERVER_2::SERVER_2(unsigned short const * __ptr64) __ptr64
??0SERVER_2@@QEAA@PEBG@Z
; protected: __cdecl SERVER_ENUM::SERVER_ENUM(unsigned short const * __ptr64,unsigned int,unsigned short const * __ptr64,unsigned long) __ptr64
??0SERVER_ENUM@@IEAA@PEBGI0K@Z
; public: __cdecl SERVICE_CONTROL::SERVICE_CONTROL(void) __ptr64
??0SERVICE_CONTROL@@QEAA@XZ
; public: __cdecl SERVICE_ENUM::SERVICE_ENUM(unsigned short const * __ptr64,int,unsigned int,unsigned short const * __ptr64) __ptr64
??0SERVICE_ENUM@@QEAA@PEBGHI0@Z
; public: __cdecl SERVICE_ENUM_ITER::SERVICE_ENUM_ITER(class SERVICE_ENUM & __ptr64) __ptr64
??0SERVICE_ENUM_ITER@@QEAA@AEAVSERVICE_ENUM@@@Z
; public: __cdecl SERVICE_ENUM_OBJ::SERVICE_ENUM_OBJ(void) __ptr64
??0SERVICE_ENUM_OBJ@@QEAA@XZ
; public: __cdecl SESSION0_ENUM::SESSION0_ENUM(unsigned short const * __ptr64) __ptr64
??0SESSION0_ENUM@@QEAA@PEBG@Z
; public: __cdecl SESSION0_ENUM_ITER::SESSION0_ENUM_ITER(class SESSION0_ENUM & __ptr64) __ptr64
??0SESSION0_ENUM_ITER@@QEAA@AEAVSESSION0_ENUM@@@Z
; public: __cdecl SESSION0_ENUM_OBJ::SESSION0_ENUM_OBJ(void) __ptr64
??0SESSION0_ENUM_OBJ@@QEAA@XZ
; public: __cdecl SESSION1_ENUM::SESSION1_ENUM(unsigned short const * __ptr64) __ptr64
??0SESSION1_ENUM@@QEAA@PEBG@Z
; public: __cdecl SESSION1_ENUM_ITER::SESSION1_ENUM_ITER(class SESSION1_ENUM & __ptr64) __ptr64
??0SESSION1_ENUM_ITER@@QEAA@AEAVSESSION1_ENUM@@@Z
; public: __cdecl SESSION1_ENUM_OBJ::SESSION1_ENUM_OBJ(void) __ptr64
??0SESSION1_ENUM_OBJ@@QEAA@XZ
; protected: __cdecl SESSION_ENUM::SESSION_ENUM(unsigned short const * __ptr64,unsigned int) __ptr64
??0SESSION_ENUM@@IEAA@PEBGI@Z
; public: __cdecl SHARE1_ENUM::SHARE1_ENUM(unsigned short const * __ptr64,int) __ptr64
??0SHARE1_ENUM@@QEAA@PEBGH@Z
; public: __cdecl SHARE1_ENUM_ITER::SHARE1_ENUM_ITER(class SHARE1_ENUM & __ptr64) __ptr64
??0SHARE1_ENUM_ITER@@QEAA@AEAVSHARE1_ENUM@@@Z
; public: __cdecl SHARE1_ENUM_OBJ::SHARE1_ENUM_OBJ(void) __ptr64
??0SHARE1_ENUM_OBJ@@QEAA@XZ
; public: __cdecl SHARE2_ENUM::SHARE2_ENUM(unsigned short const * __ptr64,int) __ptr64
??0SHARE2_ENUM@@QEAA@PEBGH@Z
; public: __cdecl SHARE2_ENUM_ITER::SHARE2_ENUM_ITER(class SHARE2_ENUM & __ptr64) __ptr64
??0SHARE2_ENUM_ITER@@QEAA@AEAVSHARE2_ENUM@@@Z
; public: __cdecl SHARE2_ENUM_OBJ::SHARE2_ENUM_OBJ(void) __ptr64
??0SHARE2_ENUM_OBJ@@QEAA@XZ
; public: __cdecl SHARE::SHARE(unsigned short const * __ptr64,unsigned short const * __ptr64,int) __ptr64
??0SHARE@@QEAA@PEBG0H@Z
; public: __cdecl SHARE_1::SHARE_1(unsigned short const * __ptr64,unsigned short const * __ptr64,int) __ptr64
??0SHARE_1@@QEAA@PEBG0H@Z
; public: __cdecl SHARE_2::SHARE_2(unsigned short const * __ptr64,unsigned short const * __ptr64,int) __ptr64
??0SHARE_2@@QEAA@PEBG0H@Z
; protected: __cdecl SHARE_ENUM::SHARE_ENUM(unsigned short const * __ptr64,unsigned int,int) __ptr64
??0SHARE_ENUM@@IEAA@PEBGIH@Z
; public: __cdecl SLIST_OF_ADMIN_AUTHORITY::SLIST_OF_ADMIN_AUTHORITY(int) __ptr64
??0SLIST_OF_ADMIN_AUTHORITY@@QEAA@H@Z
; public: __cdecl SLIST_OF_API_SESSION::SLIST_OF_API_SESSION(int) __ptr64
??0SLIST_OF_API_SESSION@@QEAA@H@Z
; public: __cdecl SLIST_OF_BROWSE_DOMAIN_INFO::SLIST_OF_BROWSE_DOMAIN_INFO(int) __ptr64
??0SLIST_OF_BROWSE_DOMAIN_INFO@@QEAA@H@Z
; public: __cdecl SLIST_OF_LM_RESUME_BUFFER::SLIST_OF_LM_RESUME_BUFFER(int) __ptr64
??0SLIST_OF_LM_RESUME_BUFFER@@QEAA@H@Z
; public: __cdecl TIME_OF_DAY::TIME_OF_DAY(class LOCATION & __ptr64) __ptr64
??0TIME_OF_DAY@@QEAA@AEAVLOCATION@@@Z
; public: __cdecl TIME_OF_DAY::TIME_OF_DAY(unsigned short const * __ptr64) __ptr64
??0TIME_OF_DAY@@QEAA@PEBG@Z
; public: __cdecl TIME_OF_DAY::TIME_OF_DAY(enum LOCATION_TYPE) __ptr64
??0TIME_OF_DAY@@QEAA@W4LOCATION_TYPE@@@Z
; public: __cdecl TRIPLE_SERVER_ENUM::TRIPLE_SERVER_ENUM(unsigned short const * __ptr64,unsigned short const * __ptr64,int,int,int,int) __ptr64
??0TRIPLE_SERVER_ENUM@@QEAA@PEBG0HHHH@Z
; public: __cdecl TRIPLE_SERVER_ENUM_ITER::TRIPLE_SERVER_ENUM_ITER(class TRIPLE_SERVER_ENUM & __ptr64) __ptr64
??0TRIPLE_SERVER_ENUM_ITER@@QEAA@AEAVTRIPLE_SERVER_ENUM@@@Z
; public: __cdecl TRIPLE_SERVER_ENUM_OBJ::TRIPLE_SERVER_ENUM_OBJ(void) __ptr64
??0TRIPLE_SERVER_ENUM_OBJ@@QEAA@XZ
; public: __cdecl TRUSTED_DOMAIN_ENUM::TRUSTED_DOMAIN_ENUM(class LSA_POLICY const * __ptr64,int) __ptr64
??0TRUSTED_DOMAIN_ENUM@@QEAA@PEBVLSA_POLICY@@H@Z
; public: __cdecl TRUSTED_DOMAIN_ENUM_ITER::TRUSTED_DOMAIN_ENUM_ITER(class TRUSTED_DOMAIN_ENUM & __ptr64) __ptr64
??0TRUSTED_DOMAIN_ENUM_ITER@@QEAA@AEAVTRUSTED_DOMAIN_ENUM@@@Z
; public: __cdecl TRUSTED_DOMAIN_ENUM_OBJ::TRUSTED_DOMAIN_ENUM_OBJ(void) __ptr64
??0TRUSTED_DOMAIN_ENUM_OBJ@@QEAA@XZ
; public: __cdecl USE1_ENUM::USE1_ENUM(unsigned short const * __ptr64) __ptr64
??0USE1_ENUM@@QEAA@PEBG@Z
; public: __cdecl USE1_ENUM_ITER::USE1_ENUM_ITER(class USE1_ENUM & __ptr64) __ptr64
??0USE1_ENUM_ITER@@QEAA@AEAVUSE1_ENUM@@@Z
; public: __cdecl USE1_ENUM_OBJ::USE1_ENUM_OBJ(void) __ptr64
??0USE1_ENUM_OBJ@@QEAA@XZ
; public: __cdecl USER0_ENUM::USER0_ENUM(class LOCATION const & __ptr64,unsigned short const * __ptr64,int) __ptr64
??0USER0_ENUM@@QEAA@AEBVLOCATION@@PEBGH@Z
; public: __cdecl USER0_ENUM::USER0_ENUM(unsigned short const * __ptr64,unsigned short const * __ptr64,int) __ptr64
??0USER0_ENUM@@QEAA@PEBG0H@Z
; public: __cdecl USER0_ENUM::USER0_ENUM(enum LOCATION_TYPE,unsigned short const * __ptr64,int) __ptr64
??0USER0_ENUM@@QEAA@W4LOCATION_TYPE@@PEBGH@Z
; public: __cdecl USER0_ENUM_ITER::USER0_ENUM_ITER(class USER0_ENUM & __ptr64) __ptr64
??0USER0_ENUM_ITER@@QEAA@AEAVUSER0_ENUM@@@Z
; public: __cdecl USER0_ENUM_OBJ::USER0_ENUM_OBJ(void) __ptr64
??0USER0_ENUM_OBJ@@QEAA@XZ
; public: __cdecl USER10_ENUM::USER10_ENUM(class LOCATION const & __ptr64,int) __ptr64
??0USER10_ENUM@@QEAA@AEBVLOCATION@@H@Z
; public: __cdecl USER10_ENUM::USER10_ENUM(unsigned short const * __ptr64,int) __ptr64
??0USER10_ENUM@@QEAA@PEBGH@Z
; public: __cdecl USER10_ENUM::USER10_ENUM(enum LOCATION_TYPE,int) __ptr64
??0USER10_ENUM@@QEAA@W4LOCATION_TYPE@@H@Z
; public: __cdecl USER10_ENUM_ITER::USER10_ENUM_ITER(class USER10_ENUM & __ptr64) __ptr64
??0USER10_ENUM_ITER@@QEAA@AEAVUSER10_ENUM@@@Z
; public: __cdecl USER10_ENUM_OBJ::USER10_ENUM_OBJ(void) __ptr64
??0USER10_ENUM_OBJ@@QEAA@XZ
; public: __cdecl USER1_ENUM::USER1_ENUM(class LOCATION const & __ptr64,int) __ptr64
??0USER1_ENUM@@QEAA@AEBVLOCATION@@H@Z
; public: __cdecl USER1_ENUM::USER1_ENUM(unsigned short const * __ptr64,int) __ptr64
??0USER1_ENUM@@QEAA@PEBGH@Z
; public: __cdecl USER1_ENUM::USER1_ENUM(enum LOCATION_TYPE,int) __ptr64
??0USER1_ENUM@@QEAA@W4LOCATION_TYPE@@H@Z
; public: __cdecl USER1_ENUM_ITER::USER1_ENUM_ITER(class USER1_ENUM & __ptr64) __ptr64
??0USER1_ENUM_ITER@@QEAA@AEAVUSER1_ENUM@@@Z
; public: __cdecl USER1_ENUM_OBJ::USER1_ENUM_OBJ(void) __ptr64
??0USER1_ENUM_OBJ@@QEAA@XZ
; public: __cdecl USER2_ENUM::USER2_ENUM(class LOCATION const & __ptr64,int) __ptr64
??0USER2_ENUM@@QEAA@AEBVLOCATION@@H@Z
; public: __cdecl USER2_ENUM::USER2_ENUM(unsigned short const * __ptr64,int) __ptr64
??0USER2_ENUM@@QEAA@PEBGH@Z
; public: __cdecl USER2_ENUM::USER2_ENUM(enum LOCATION_TYPE,int) __ptr64
??0USER2_ENUM@@QEAA@W4LOCATION_TYPE@@H@Z
; public: __cdecl USER2_ENUM_ITER::USER2_ENUM_ITER(class USER2_ENUM & __ptr64) __ptr64
??0USER2_ENUM_ITER@@QEAA@AEAVUSER2_ENUM@@@Z
; public: __cdecl USER2_ENUM_OBJ::USER2_ENUM_OBJ(void) __ptr64
??0USER2_ENUM_OBJ@@QEAA@XZ
; public: __cdecl USER::USER(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0USER@@QEAA@PEBG0@Z
; public: __cdecl USER::USER(unsigned short const * __ptr64,class LOCATION const & __ptr64) __ptr64
??0USER@@QEAA@PEBGAEBVLOCATION@@@Z
; public: __cdecl USER::USER(unsigned short const * __ptr64,enum LOCATION_TYPE) __ptr64
??0USER@@QEAA@PEBGW4LOCATION_TYPE@@@Z
; public: __cdecl USER_11::USER_11(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0USER_11@@QEAA@PEBG0@Z
; public: __cdecl USER_11::USER_11(unsigned short const * __ptr64,class LOCATION const & __ptr64) __ptr64
??0USER_11@@QEAA@PEBGAEBVLOCATION@@@Z
; public: __cdecl USER_11::USER_11(unsigned short const * __ptr64,enum LOCATION_TYPE) __ptr64
??0USER_11@@QEAA@PEBGW4LOCATION_TYPE@@@Z
; public: __cdecl USER_2::USER_2(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0USER_2@@QEAA@PEBG0@Z
; public: __cdecl USER_2::USER_2(unsigned short const * __ptr64,class LOCATION const & __ptr64) __ptr64
??0USER_2@@QEAA@PEBGAEBVLOCATION@@@Z
; public: __cdecl USER_2::USER_2(unsigned short const * __ptr64,enum LOCATION_TYPE) __ptr64
??0USER_2@@QEAA@PEBGW4LOCATION_TYPE@@@Z
; public: __cdecl USER_3::USER_3(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0USER_3@@QEAA@PEBG0@Z
; public: __cdecl USER_3::USER_3(unsigned short const * __ptr64,class LOCATION const & __ptr64) __ptr64
??0USER_3@@QEAA@PEBGAEBVLOCATION@@@Z
; public: __cdecl USER_3::USER_3(unsigned short const * __ptr64,enum LOCATION_TYPE) __ptr64
??0USER_3@@QEAA@PEBGW4LOCATION_TYPE@@@Z
; protected: __cdecl USER_ENUM::USER_ENUM(class LOCATION const & __ptr64,unsigned int,unsigned short const * __ptr64,int) __ptr64
??0USER_ENUM@@IEAA@AEBVLOCATION@@IPEBGH@Z
; protected: __cdecl USER_ENUM::USER_ENUM(unsigned short const * __ptr64,unsigned int,unsigned short const * __ptr64,int) __ptr64
??0USER_ENUM@@IEAA@PEBGI0H@Z
; protected: __cdecl USER_ENUM::USER_ENUM(enum LOCATION_TYPE,unsigned int,unsigned short const * __ptr64,int) __ptr64
??0USER_ENUM@@IEAA@W4LOCATION_TYPE@@IPEBGH@Z
; public: __cdecl USER_MEMB::USER_MEMB(class LOCATION const & __ptr64,unsigned short const * __ptr64) __ptr64
??0USER_MEMB@@QEAA@AEBVLOCATION@@PEBG@Z
; public: __cdecl USER_MODALS::USER_MODALS(unsigned short const * __ptr64) __ptr64
??0USER_MODALS@@QEAA@PEBG@Z
; public: __cdecl USER_MODALS_3::USER_MODALS_3(unsigned short const * __ptr64) __ptr64
??0USER_MODALS_3@@QEAA@PEBG@Z
; protected: __cdecl USE_ENUM::USE_ENUM(unsigned short const * __ptr64,unsigned int) __ptr64
??0USE_ENUM@@IEAA@PEBGI@Z
; public: __cdecl WKSTA_10::WKSTA_10(unsigned short const * __ptr64) __ptr64
??0WKSTA_10@@QEAA@PEBG@Z
; public: __cdecl WKSTA_1::WKSTA_1(unsigned short const * __ptr64) __ptr64
??0WKSTA_1@@QEAA@PEBG@Z
; public: __cdecl WKSTA_USER_1::WKSTA_USER_1(void) __ptr64
??0WKSTA_USER_1@@QEAA@XZ
; public: __cdecl ADMIN_AUTHORITY::~ADMIN_AUTHORITY(void) __ptr64
??1ADMIN_AUTHORITY@@QEAA@XZ
; public: __cdecl ALIAS_ENUM::~ALIAS_ENUM(void) __ptr64
??1ALIAS_ENUM@@QEAA@XZ
; public: __cdecl ALIAS_ENUM_OBJ::~ALIAS_ENUM_OBJ(void) __ptr64
??1ALIAS_ENUM_OBJ@@QEAA@XZ
; public: __cdecl ALIAS_STR::~ALIAS_STR(void) __ptr64
??1ALIAS_STR@@QEAA@XZ
; public: __cdecl ALLOC_STR::~ALLOC_STR(void) __ptr64
??1ALLOC_STR@@QEAA@XZ
; public: __cdecl API_SESSION::~API_SESSION(void) __ptr64
??1API_SESSION@@QEAA@XZ
; public: __cdecl BROWSE_DOMAIN_ENUM::~BROWSE_DOMAIN_ENUM(void) __ptr64
??1BROWSE_DOMAIN_ENUM@@QEAA@XZ
; public: __cdecl BROWSE_DOMAIN_INFO::~BROWSE_DOMAIN_INFO(void) __ptr64
??1BROWSE_DOMAIN_INFO@@QEAA@XZ
; public: __cdecl CHARDEVQ1_ENUM_OBJ::~CHARDEVQ1_ENUM_OBJ(void) __ptr64
??1CHARDEVQ1_ENUM_OBJ@@QEAA@XZ
; public: __cdecl CHARDEVQ_ENUM::~CHARDEVQ_ENUM(void) __ptr64
??1CHARDEVQ_ENUM@@QEAA@XZ
; protected: __cdecl COMPUTER::~COMPUTER(void) __ptr64
??1COMPUTER@@IEAA@XZ
; public: __cdecl CONN0_ENUM_OBJ::~CONN0_ENUM_OBJ(void) __ptr64
??1CONN0_ENUM_OBJ@@QEAA@XZ
; public: __cdecl CONN1_ENUM_OBJ::~CONN1_ENUM_OBJ(void) __ptr64
??1CONN1_ENUM_OBJ@@QEAA@XZ
; public: __cdecl CONN_ENUM::~CONN_ENUM(void) __ptr64
??1CONN_ENUM@@QEAA@XZ
; public: __cdecl CONTEXT_ENUM_OBJ::~CONTEXT_ENUM_OBJ(void) __ptr64
??1CONTEXT_ENUM_OBJ@@QEAA@XZ
; public: __cdecl DEVICE::~DEVICE(void) __ptr64
??1DEVICE@@QEAA@XZ
; public: __cdecl DOMAIN0_ENUM::~DOMAIN0_ENUM(void) __ptr64
??1DOMAIN0_ENUM@@QEAA@XZ
; public: __cdecl DOMAIN0_ENUM_ITER::~DOMAIN0_ENUM_ITER(void) __ptr64
??1DOMAIN0_ENUM_ITER@@QEAA@XZ
; public: __cdecl DOMAIN0_ENUM_OBJ::~DOMAIN0_ENUM_OBJ(void) __ptr64
??1DOMAIN0_ENUM_OBJ@@QEAA@XZ
; public: __cdecl DOMAIN::~DOMAIN(void) __ptr64
??1DOMAIN@@QEAA@XZ
; public: __cdecl DOMAIN_ENUM::~DOMAIN_ENUM(void) __ptr64
??1DOMAIN_ENUM@@QEAA@XZ
; public: __cdecl DOMAIN_WITH_DC_CACHE::~DOMAIN_WITH_DC_CACHE(void) __ptr64
??1DOMAIN_WITH_DC_CACHE@@QEAA@XZ
; public: __cdecl ENUM_CALLER_LM_OBJ::~ENUM_CALLER_LM_OBJ(void) __ptr64
??1ENUM_CALLER_LM_OBJ@@QEAA@XZ
; protected: __cdecl ENUM_OBJ_BASE::~ENUM_OBJ_BASE(void) __ptr64
??1ENUM_OBJ_BASE@@IEAA@XZ
; public: __cdecl FILE2_ENUM_OBJ::~FILE2_ENUM_OBJ(void) __ptr64
??1FILE2_ENUM_OBJ@@QEAA@XZ
; public: __cdecl FILE3_ENUM::~FILE3_ENUM(void) __ptr64
??1FILE3_ENUM@@QEAA@XZ
; public: __cdecl FILE3_ENUM_ITER::~FILE3_ENUM_ITER(void) __ptr64
??1FILE3_ENUM_ITER@@QEAA@XZ
; public: __cdecl FILE3_ENUM_OBJ::~FILE3_ENUM_OBJ(void) __ptr64
??1FILE3_ENUM_OBJ@@QEAA@XZ
; protected: __cdecl FILE_ENUM::~FILE_ENUM(void) __ptr64
??1FILE_ENUM@@IEAA@XZ
; public: __cdecl GROUP0_ENUM::~GROUP0_ENUM(void) __ptr64
??1GROUP0_ENUM@@QEAA@XZ
; public: __cdecl GROUP0_ENUM_ITER::~GROUP0_ENUM_ITER(void) __ptr64
??1GROUP0_ENUM_ITER@@QEAA@XZ
; public: __cdecl GROUP0_ENUM_OBJ::~GROUP0_ENUM_OBJ(void) __ptr64
??1GROUP0_ENUM_OBJ@@QEAA@XZ
; public: __cdecl GROUP1_ENUM_OBJ::~GROUP1_ENUM_OBJ(void) __ptr64
??1GROUP1_ENUM_OBJ@@QEAA@XZ
; public: __cdecl GROUP::~GROUP(void) __ptr64
??1GROUP@@QEAA@XZ
; public: __cdecl GROUP_0::~GROUP_0(void) __ptr64
??1GROUP_0@@QEAA@XZ
; public: __cdecl GROUP_1::~GROUP_1(void) __ptr64
??1GROUP_1@@QEAA@XZ
; public: __cdecl GROUP_ENUM::~GROUP_ENUM(void) __ptr64
??1GROUP_ENUM@@QEAA@XZ
; public: __cdecl GROUP_MEMB::~GROUP_MEMB(void) __ptr64
??1GROUP_MEMB@@QEAA@XZ
; public: __cdecl ITER_DEVICE::~ITER_DEVICE(void) __ptr64
??1ITER_DEVICE@@QEAA@XZ
; public: __cdecl ITER_SL_BROWSE_DOMAIN_INFO::~ITER_SL_BROWSE_DOMAIN_INFO(void) __ptr64
??1ITER_SL_BROWSE_DOMAIN_INFO@@QEAA@XZ
; public: __cdecl ITER_SL_LM_RESUME_BUFFER::~ITER_SL_LM_RESUME_BUFFER(void) __ptr64
??1ITER_SL_LM_RESUME_BUFFER@@QEAA@XZ
; public: __cdecl LM_CONFIG::~LM_CONFIG(void) __ptr64
??1LM_CONFIG@@QEAA@XZ
; public: __cdecl LM_ENUM::~LM_ENUM(void) __ptr64
??1LM_ENUM@@QEAA@XZ
; protected: __cdecl LM_ENUM_ITER::~LM_ENUM_ITER(void) __ptr64
??1LM_ENUM_ITER@@IEAA@XZ
; protected: __cdecl LM_FILE::~LM_FILE(void) __ptr64
??1LM_FILE@@IEAA@XZ
; public: __cdecl LM_FILE_2::~LM_FILE_2(void) __ptr64
??1LM_FILE_2@@QEAA@XZ
; public: __cdecl LM_RESUME_BUFFER::~LM_RESUME_BUFFER(void) __ptr64
??1LM_RESUME_BUFFER@@QEAA@XZ
; public: __cdecl LM_RESUME_ENUM::~LM_RESUME_ENUM(void) __ptr64
??1LM_RESUME_ENUM@@QEAA@XZ
; protected: __cdecl LM_RESUME_ENUM_ITER::~LM_RESUME_ENUM_ITER(void) __ptr64
??1LM_RESUME_ENUM_ITER@@IEAA@XZ
; public: __cdecl LM_SERVICE::~LM_SERVICE(void) __ptr64
??1LM_SERVICE@@QEAA@XZ
; public: __cdecl LM_SESSION::~LM_SESSION(void) __ptr64
??1LM_SESSION@@QEAA@XZ
; public: __cdecl LM_SESSION_0::~LM_SESSION_0(void) __ptr64
??1LM_SESSION_0@@QEAA@XZ
; public: __cdecl LM_SESSION_10::~LM_SESSION_10(void) __ptr64
??1LM_SESSION_10@@QEAA@XZ
; public: __cdecl LM_SESSION_1::~LM_SESSION_1(void) __ptr64
??1LM_SESSION_1@@QEAA@XZ
; public: __cdecl LM_SRVRES::~LM_SRVRES(void) __ptr64
??1LM_SRVRES@@QEAA@XZ
; public: __cdecl LOCAL_USER::~LOCAL_USER(void) __ptr64
??1LOCAL_USER@@QEAA@XZ
; public: __cdecl LOCATION::~LOCATION(void) __ptr64
??1LOCATION@@QEAA@XZ
; public: __cdecl LOC_LM_ENUM::~LOC_LM_ENUM(void) __ptr64
??1LOC_LM_ENUM@@QEAA@XZ
; public: __cdecl LOC_LM_OBJ::~LOC_LM_OBJ(void) __ptr64
??1LOC_LM_OBJ@@QEAA@XZ
; public: __cdecl LOC_LM_RESUME_ENUM::~LOC_LM_RESUME_ENUM(void) __ptr64
??1LOC_LM_RESUME_ENUM@@QEAA@XZ
; public: __cdecl LSA_ACCOUNT::~LSA_ACCOUNT(void) __ptr64
??1LSA_ACCOUNT@@QEAA@XZ
; public: __cdecl LSA_ACCOUNTS_ENUM_OBJ::~LSA_ACCOUNTS_ENUM_OBJ(void) __ptr64
??1LSA_ACCOUNTS_ENUM_OBJ@@QEAA@XZ
; public: __cdecl LSA_ACCOUNT_PRIVILEGE_ENUM_ITER::~LSA_ACCOUNT_PRIVILEGE_ENUM_ITER(void) __ptr64
??1LSA_ACCOUNT_PRIVILEGE_ENUM_ITER@@QEAA@XZ
; public: __cdecl LSA_ACCT_DOM_INFO_MEM::~LSA_ACCT_DOM_INFO_MEM(void) __ptr64
??1LSA_ACCT_DOM_INFO_MEM@@QEAA@XZ
; public: __cdecl LSA_AUDIT_EVENT_INFO_MEM::~LSA_AUDIT_EVENT_INFO_MEM(void) __ptr64
??1LSA_AUDIT_EVENT_INFO_MEM@@QEAA@XZ
; public: __cdecl LSA_DOMAIN_INFO::~LSA_DOMAIN_INFO(void) __ptr64
??1LSA_DOMAIN_INFO@@QEAA@XZ
; public: __cdecl LSA_ENUM::~LSA_ENUM(void) __ptr64
??1LSA_ENUM@@QEAA@XZ
; protected: __cdecl LSA_MEMORY::~LSA_MEMORY(void) __ptr64
??1LSA_MEMORY@@IEAA@XZ
; protected: __cdecl LSA_OBJECT::~LSA_OBJECT(void) __ptr64
??1LSA_OBJECT@@IEAA@XZ
; public: __cdecl LSA_POLICY::~LSA_POLICY(void) __ptr64
??1LSA_POLICY@@QEAA@XZ
; public: __cdecl LSA_PRIMARY_DOM_INFO_MEM::~LSA_PRIMARY_DOM_INFO_MEM(void) __ptr64
??1LSA_PRIMARY_DOM_INFO_MEM@@QEAA@XZ
; public: __cdecl LSA_PRIVILEGES_ENUM_OBJ::~LSA_PRIVILEGES_ENUM_OBJ(void) __ptr64
??1LSA_PRIVILEGES_ENUM_OBJ@@QEAA@XZ
; public: __cdecl LSA_REF_DOMAIN_MEM::~LSA_REF_DOMAIN_MEM(void) __ptr64
??1LSA_REF_DOMAIN_MEM@@QEAA@XZ
; public: __cdecl LSA_SECRET::~LSA_SECRET(void) __ptr64
??1LSA_SECRET@@QEAA@XZ
; public: __cdecl LSA_SERVER_ROLE_INFO_MEM::~LSA_SERVER_ROLE_INFO_MEM(void) __ptr64
??1LSA_SERVER_ROLE_INFO_MEM@@QEAA@XZ
; public: __cdecl LSA_TRANSLATED_NAME_MEM::~LSA_TRANSLATED_NAME_MEM(void) __ptr64
??1LSA_TRANSLATED_NAME_MEM@@QEAA@XZ
; public: __cdecl LSA_TRANSLATED_SID_MEM::~LSA_TRANSLATED_SID_MEM(void) __ptr64
??1LSA_TRANSLATED_SID_MEM@@QEAA@XZ
; public: __cdecl LSA_TRUSTED_DC_LIST::~LSA_TRUSTED_DC_LIST(void) __ptr64
??1LSA_TRUSTED_DC_LIST@@QEAA@XZ
; public: __cdecl LSA_TRUSTED_DOMAIN::~LSA_TRUSTED_DOMAIN(void) __ptr64
??1LSA_TRUSTED_DOMAIN@@QEAA@XZ
; public: __cdecl LSA_TRUST_INFO_MEM::~LSA_TRUST_INFO_MEM(void) __ptr64
??1LSA_TRUST_INFO_MEM@@QEAA@XZ
; public: __cdecl MEMBERSHIP_LM_OBJ::~MEMBERSHIP_LM_OBJ(void) __ptr64
??1MEMBERSHIP_LM_OBJ@@QEAA@XZ
; protected: __cdecl NET_ACCESS::~NET_ACCESS(void) __ptr64
??1NET_ACCESS@@IEAA@XZ
; public: __cdecl NET_ACCESS_1::~NET_ACCESS_1(void) __ptr64
??1NET_ACCESS_1@@QEAA@XZ
; public: __cdecl NET_NAME::~NET_NAME(void) __ptr64
??1NET_NAME@@QEAA@XZ
; public: __cdecl NEW_LM_OBJ::~NEW_LM_OBJ(void) __ptr64
??1NEW_LM_OBJ@@QEAA@XZ
; protected: __cdecl NT_ACCOUNT_ENUM::~NT_ACCOUNT_ENUM(void) __ptr64
??1NT_ACCOUNT_ENUM@@IEAA@XZ
; public: __cdecl NT_GROUP_ENUM::~NT_GROUP_ENUM(void) __ptr64
??1NT_GROUP_ENUM@@QEAA@XZ
; public: __cdecl NT_GROUP_ENUM_OBJ::~NT_GROUP_ENUM_OBJ(void) __ptr64
??1NT_GROUP_ENUM_OBJ@@QEAA@XZ
; public: __cdecl NT_MACHINE_ENUM::~NT_MACHINE_ENUM(void) __ptr64
??1NT_MACHINE_ENUM@@QEAA@XZ
; public: __cdecl NT_MACHINE_ENUM_ITER::~NT_MACHINE_ENUM_ITER(void) __ptr64
??1NT_MACHINE_ENUM_ITER@@QEAA@XZ
; public: __cdecl NT_MACHINE_ENUM_OBJ::~NT_MACHINE_ENUM_OBJ(void) __ptr64
??1NT_MACHINE_ENUM_OBJ@@QEAA@XZ
; protected: __cdecl NT_MEMORY::~NT_MEMORY(void) __ptr64
??1NT_MEMORY@@IEAA@XZ
; public: __cdecl NT_USER_ENUM::~NT_USER_ENUM(void) __ptr64
??1NT_USER_ENUM@@QEAA@XZ
; public: __cdecl NT_USER_ENUM_OBJ::~NT_USER_ENUM_OBJ(void) __ptr64
??1NT_USER_ENUM_OBJ@@QEAA@XZ
; public: __cdecl OS_ACE::~OS_ACE(void) __ptr64
??1OS_ACE@@QEAA@XZ
; public: __cdecl OS_ACL::~OS_ACL(void) __ptr64
??1OS_ACL@@QEAA@XZ
; public: __cdecl OS_ACL_SUBJECT_ITER::~OS_ACL_SUBJECT_ITER(void) __ptr64
??1OS_ACL_SUBJECT_ITER@@QEAA@XZ
; public: __cdecl OS_DACL_SUBJECT_ITER::~OS_DACL_SUBJECT_ITER(void) __ptr64
??1OS_DACL_SUBJECT_ITER@@QEAA@XZ
; protected: __cdecl OS_OBJECT_WITH_DATA::~OS_OBJECT_WITH_DATA(void) __ptr64
??1OS_OBJECT_WITH_DATA@@IEAA@XZ
; public: __cdecl OS_PRIVILEGE_SET::~OS_PRIVILEGE_SET(void) __ptr64
??1OS_PRIVILEGE_SET@@QEAA@XZ
; public: __cdecl OS_SACL_SUBJECT_ITER::~OS_SACL_SUBJECT_ITER(void) __ptr64
??1OS_SACL_SUBJECT_ITER@@QEAA@XZ
; public: __cdecl OS_SECURITY_DESCRIPTOR::~OS_SECURITY_DESCRIPTOR(void) __ptr64
??1OS_SECURITY_DESCRIPTOR@@QEAA@XZ
; public: __cdecl OS_SID::~OS_SID(void) __ptr64
??1OS_SID@@QEAA@XZ
; public: __cdecl REG_VALUE_INFO_STRUCT::~REG_VALUE_INFO_STRUCT(void) __ptr64
??1REG_VALUE_INFO_STRUCT@@QEAA@XZ
; public: __cdecl SAM_ALIAS::~SAM_ALIAS(void) __ptr64
??1SAM_ALIAS@@QEAA@XZ
; public: __cdecl SAM_DOMAIN::~SAM_DOMAIN(void) __ptr64
??1SAM_DOMAIN@@QEAA@XZ
; public: __cdecl SAM_GROUP::~SAM_GROUP(void) __ptr64
??1SAM_GROUP@@QEAA@XZ
; public: __cdecl SAM_MEMORY::~SAM_MEMORY(void) __ptr64
??1SAM_MEMORY@@QEAA@XZ
; protected: __cdecl SAM_OBJECT::~SAM_OBJECT(void) __ptr64
??1SAM_OBJECT@@IEAA@XZ
; public: __cdecl SAM_PSWD_DOM_INFO_MEM::~SAM_PSWD_DOM_INFO_MEM(void) __ptr64
??1SAM_PSWD_DOM_INFO_MEM@@QEAA@XZ
; public: __cdecl SAM_RID_ENUMERATION_MEM::~SAM_RID_ENUMERATION_MEM(void) __ptr64
??1SAM_RID_ENUMERATION_MEM@@QEAA@XZ
; public: __cdecl SAM_RID_MEM::~SAM_RID_MEM(void) __ptr64
??1SAM_RID_MEM@@QEAA@XZ
; public: __cdecl SAM_SERVER::~SAM_SERVER(void) __ptr64
??1SAM_SERVER@@QEAA@XZ
; public: __cdecl SAM_SID_MEM::~SAM_SID_MEM(void) __ptr64
??1SAM_SID_MEM@@QEAA@XZ
; public: __cdecl SAM_SID_NAME_USE_MEM::~SAM_SID_NAME_USE_MEM(void) __ptr64
??1SAM_SID_NAME_USE_MEM@@QEAA@XZ
; public: __cdecl SAM_USER::~SAM_USER(void) __ptr64
??1SAM_USER@@QEAA@XZ
; public: __cdecl SAM_USER_ENUM::~SAM_USER_ENUM(void) __ptr64
??1SAM_USER_ENUM@@QEAA@XZ
; public: __cdecl SAM_USER_ENUM_ITER::~SAM_USER_ENUM_ITER(void) __ptr64
??1SAM_USER_ENUM_ITER@@QEAA@XZ
; public: __cdecl SAM_USER_ENUM_OBJ::~SAM_USER_ENUM_OBJ(void) __ptr64
??1SAM_USER_ENUM_OBJ@@QEAA@XZ
; public: __cdecl SC_MANAGER::~SC_MANAGER(void) __ptr64
??1SC_MANAGER@@QEAA@XZ
; public: __cdecl SC_SERVICE::~SC_SERVICE(void) __ptr64
??1SC_SERVICE@@QEAA@XZ
; public: __cdecl SERVER1_ENUM::~SERVER1_ENUM(void) __ptr64
??1SERVER1_ENUM@@QEAA@XZ
; public: __cdecl SERVER1_ENUM_ITER::~SERVER1_ENUM_ITER(void) __ptr64
??1SERVER1_ENUM_ITER@@QEAA@XZ
; public: __cdecl SERVER1_ENUM_OBJ::~SERVER1_ENUM_OBJ(void) __ptr64
??1SERVER1_ENUM_OBJ@@QEAA@XZ
; public: __cdecl SERVER_0::~SERVER_0(void) __ptr64
??1SERVER_0@@QEAA@XZ
; public: __cdecl SERVER_1::~SERVER_1(void) __ptr64
??1SERVER_1@@QEAA@XZ
; public: __cdecl SERVER_2::~SERVER_2(void) __ptr64
??1SERVER_2@@QEAA@XZ
; public: __cdecl SERVER_ENUM::~SERVER_ENUM(void) __ptr64
??1SERVER_ENUM@@QEAA@XZ
; public: __cdecl SERVICE_CONTROL::~SERVICE_CONTROL(void) __ptr64
??1SERVICE_CONTROL@@QEAA@XZ
; public: __cdecl SERVICE_ENUM::~SERVICE_ENUM(void) __ptr64
??1SERVICE_ENUM@@QEAA@XZ
; public: __cdecl SERVICE_ENUM_OBJ::~SERVICE_ENUM_OBJ(void) __ptr64
??1SERVICE_ENUM_OBJ@@QEAA@XZ
; public: __cdecl SESSION0_ENUM::~SESSION0_ENUM(void) __ptr64
??1SESSION0_ENUM@@QEAA@XZ
; public: __cdecl SESSION0_ENUM_ITER::~SESSION0_ENUM_ITER(void) __ptr64
??1SESSION0_ENUM_ITER@@QEAA@XZ
; public: __cdecl SESSION0_ENUM_OBJ::~SESSION0_ENUM_OBJ(void) __ptr64
??1SESSION0_ENUM_OBJ@@QEAA@XZ
; public: __cdecl SESSION1_ENUM_OBJ::~SESSION1_ENUM_OBJ(void) __ptr64
??1SESSION1_ENUM_OBJ@@QEAA@XZ
; public: __cdecl SESSION_ENUM::~SESSION_ENUM(void) __ptr64
??1SESSION_ENUM@@QEAA@XZ
; public: __cdecl SHARE1_ENUM_OBJ::~SHARE1_ENUM_OBJ(void) __ptr64
??1SHARE1_ENUM_OBJ@@QEAA@XZ
; public: __cdecl SHARE2_ENUM_OBJ::~SHARE2_ENUM_OBJ(void) __ptr64
??1SHARE2_ENUM_OBJ@@QEAA@XZ
; public: __cdecl SHARE::~SHARE(void) __ptr64
??1SHARE@@QEAA@XZ
; public: __cdecl SHARE_1::~SHARE_1(void) __ptr64
??1SHARE_1@@QEAA@XZ
; public: __cdecl SHARE_2::~SHARE_2(void) __ptr64
??1SHARE_2@@QEAA@XZ
; public: __cdecl SHARE_ENUM::~SHARE_ENUM(void) __ptr64
??1SHARE_ENUM@@QEAA@XZ
; public: __cdecl SLIST_OF_ADMIN_AUTHORITY::~SLIST_OF_ADMIN_AUTHORITY(void) __ptr64
??1SLIST_OF_ADMIN_AUTHORITY@@QEAA@XZ
; public: __cdecl SLIST_OF_API_SESSION::~SLIST_OF_API_SESSION(void) __ptr64
??1SLIST_OF_API_SESSION@@QEAA@XZ
; public: __cdecl SLIST_OF_BROWSE_DOMAIN_INFO::~SLIST_OF_BROWSE_DOMAIN_INFO(void) __ptr64
??1SLIST_OF_BROWSE_DOMAIN_INFO@@QEAA@XZ
; public: __cdecl SLIST_OF_LM_RESUME_BUFFER::~SLIST_OF_LM_RESUME_BUFFER(void) __ptr64
??1SLIST_OF_LM_RESUME_BUFFER@@QEAA@XZ
; public: __cdecl TIME_OF_DAY::~TIME_OF_DAY(void) __ptr64
??1TIME_OF_DAY@@QEAA@XZ
; public: __cdecl TRIPLE_SERVER_ENUM::~TRIPLE_SERVER_ENUM(void) __ptr64
??1TRIPLE_SERVER_ENUM@@QEAA@XZ
; public: __cdecl TRIPLE_SERVER_ENUM_OBJ::~TRIPLE_SERVER_ENUM_OBJ(void) __ptr64
??1TRIPLE_SERVER_ENUM_OBJ@@QEAA@XZ
; public: __cdecl TRUSTED_DOMAIN_ENUM::~TRUSTED_DOMAIN_ENUM(void) __ptr64
??1TRUSTED_DOMAIN_ENUM@@QEAA@XZ
; public: __cdecl TRUSTED_DOMAIN_ENUM_OBJ::~TRUSTED_DOMAIN_ENUM_OBJ(void) __ptr64
??1TRUSTED_DOMAIN_ENUM_OBJ@@QEAA@XZ
; public: __cdecl USE1_ENUM_OBJ::~USE1_ENUM_OBJ(void) __ptr64
??1USE1_ENUM_OBJ@@QEAA@XZ
; public: __cdecl USER0_ENUM::~USER0_ENUM(void) __ptr64
??1USER0_ENUM@@QEAA@XZ
; public: __cdecl USER0_ENUM_ITER::~USER0_ENUM_ITER(void) __ptr64
??1USER0_ENUM_ITER@@QEAA@XZ
; public: __cdecl USER0_ENUM_OBJ::~USER0_ENUM_OBJ(void) __ptr64
??1USER0_ENUM_OBJ@@QEAA@XZ
; public: __cdecl USER10_ENUM_OBJ::~USER10_ENUM_OBJ(void) __ptr64
??1USER10_ENUM_OBJ@@QEAA@XZ
; public: __cdecl USER1_ENUM_OBJ::~USER1_ENUM_OBJ(void) __ptr64
??1USER1_ENUM_OBJ@@QEAA@XZ
; public: __cdecl USER2_ENUM_OBJ::~USER2_ENUM_OBJ(void) __ptr64
??1USER2_ENUM_OBJ@@QEAA@XZ
; public: __cdecl USER::~USER(void) __ptr64
??1USER@@QEAA@XZ
; public: __cdecl USER_11::~USER_11(void) __ptr64
??1USER_11@@QEAA@XZ
; public: virtual __cdecl USER_2::~USER_2(void) __ptr64
??1USER_2@@UEAA@XZ
; public: virtual __cdecl USER_3::~USER_3(void) __ptr64
??1USER_3@@UEAA@XZ
; public: __cdecl USER_ENUM::~USER_ENUM(void) __ptr64
??1USER_ENUM@@QEAA@XZ
; public: __cdecl USER_MEMB::~USER_MEMB(void) __ptr64
??1USER_MEMB@@QEAA@XZ
; public: __cdecl USE_ENUM::~USE_ENUM(void) __ptr64
??1USE_ENUM@@QEAA@XZ
; public: __cdecl WKSTA_10::~WKSTA_10(void) __ptr64
??1WKSTA_10@@QEAA@XZ
; public: __cdecl WKSTA_1::~WKSTA_1(void) __ptr64
??1WKSTA_1@@QEAA@XZ
; public: __cdecl WKSTA_USER_1::~WKSTA_USER_1(void) __ptr64
??1WKSTA_USER_1@@QEAA@XZ
; public: class ALLOC_STR & __ptr64 __cdecl ALLOC_STR::operator=(class ALLOC_STR const & __ptr64) __ptr64
??4ALLOC_STR@@QEAAAEAV0@AEBV0@@Z
; public: class ALLOC_STR & __ptr64 __cdecl ALLOC_STR::operator=(unsigned short const * __ptr64) __ptr64
??4ALLOC_STR@@QEAAAEAV0@PEBG@Z
; public: int __cdecl BASE::operator!(void)const  __ptr64
??7BASE@@QEBAHXZ
; public: int __cdecl OS_LUID::operator==(class OS_LUID const & __ptr64)const  __ptr64
??8OS_LUID@@QEBAHAEBV0@@Z
; public: int __cdecl OS_SID::operator==(class OS_SID const & __ptr64)const  __ptr64
??8OS_SID@@QEBAHAEBV0@@Z
; public: struct _UNICODE_STRING const & __ptr64 __cdecl LSA_TRUSTED_DC_LIST::operator[](int)const  __ptr64
??ALSA_TRUSTED_DC_LIST@@QEBAAEBU_UNICODE_STRING@@H@Z
; public: unsigned short const * __ptr64 __cdecl NLS_STR::operator[](class ISTR const & __ptr64)const  __ptr64
??ANLS_STR@@QEBAPEBGAEBVISTR@@@Z
; public: __cdecl NLS_STR::operator unsigned short const * __ptr64(void)const  __ptr64
??BNLS_STR@@QEBAPEBGXZ
; public: __cdecl OS_ACL::operator struct _ACL * __ptr64(void)const  __ptr64
??BOS_ACL@@QEBAPEAU_ACL@@XZ
; public: __cdecl OS_SID::operator void * __ptr64(void)const  __ptr64
??BOS_SID@@QEBAPEAXXZ
; public: class CHARDEVQ1_ENUM_OBJ const * __ptr64 __cdecl CHARDEVQ1_ENUM_ITER::operator()(void) __ptr64
??RCHARDEVQ1_ENUM_ITER@@QEAAPEBVCHARDEVQ1_ENUM_OBJ@@XZ
; public: class CONN0_ENUM_OBJ const * __ptr64 __cdecl CONN0_ENUM_ITER::operator()(void) __ptr64
??RCONN0_ENUM_ITER@@QEAAPEBVCONN0_ENUM_OBJ@@XZ
; public: class CONN1_ENUM_OBJ const * __ptr64 __cdecl CONN1_ENUM_ITER::operator()(void) __ptr64
??RCONN1_ENUM_ITER@@QEAAPEBVCONN1_ENUM_OBJ@@XZ
; public: class CONTEXT_ENUM_OBJ const * __ptr64 __cdecl CONTEXT_ENUM_ITER::operator()(void) __ptr64
??RCONTEXT_ENUM_ITER@@QEAAPEBVCONTEXT_ENUM_OBJ@@XZ
; public: class DOMAIN0_ENUM_OBJ const * __ptr64 __cdecl DOMAIN0_ENUM_ITER::operator()(void) __ptr64
??RDOMAIN0_ENUM_ITER@@QEAAPEBVDOMAIN0_ENUM_OBJ@@XZ
; public: class FILE3_ENUM_OBJ const * __ptr64 __cdecl FILE3_ENUM_ITER::operator()(long * __ptr64,int) __ptr64
??RFILE3_ENUM_ITER@@QEAAPEBVFILE3_ENUM_OBJ@@PEAJH@Z
; public: class GROUP0_ENUM_OBJ const * __ptr64 __cdecl GROUP0_ENUM_ITER::operator()(void) __ptr64
??RGROUP0_ENUM_ITER@@QEAAPEBVGROUP0_ENUM_OBJ@@XZ
; public: class GROUP1_ENUM_OBJ const * __ptr64 __cdecl GROUP1_ENUM_ITER::operator()(void) __ptr64
??RGROUP1_ENUM_ITER@@QEAAPEBVGROUP1_ENUM_OBJ@@XZ
; public: class OS_LUID_AND_ATTRIBUTES const * __ptr64 __cdecl LSA_ACCOUNT_PRIVILEGE_ENUM_ITER::operator()(void) __ptr64
??RLSA_ACCOUNT_PRIVILEGE_ENUM_ITER@@QEAAPEBVOS_LUID_AND_ATTRIBUTES@@XZ
; public: class NT_MACHINE_ENUM_OBJ const * __ptr64 __cdecl NT_MACHINE_ENUM_ITER::operator()(long * __ptr64,int) __ptr64
??RNT_MACHINE_ENUM_ITER@@QEAAPEBVNT_MACHINE_ENUM_OBJ@@PEAJH@Z
; public: class SERVER1_ENUM_OBJ const * __ptr64 __cdecl SERVER1_ENUM_ITER::operator()(void) __ptr64
??RSERVER1_ENUM_ITER@@QEAAPEBVSERVER1_ENUM_OBJ@@XZ
; public: class SERVICE_ENUM_OBJ const * __ptr64 __cdecl SERVICE_ENUM_ITER::operator()(void) __ptr64
??RSERVICE_ENUM_ITER@@QEAAPEBVSERVICE_ENUM_OBJ@@XZ
; public: class SESSION0_ENUM_OBJ const * __ptr64 __cdecl SESSION0_ENUM_ITER::operator()(void) __ptr64
??RSESSION0_ENUM_ITER@@QEAAPEBVSESSION0_ENUM_OBJ@@XZ
; public: class SESSION1_ENUM_OBJ const * __ptr64 __cdecl SESSION1_ENUM_ITER::operator()(void) __ptr64
??RSESSION1_ENUM_ITER@@QEAAPEBVSESSION1_ENUM_OBJ@@XZ
; public: class SHARE1_ENUM_OBJ const * __ptr64 __cdecl SHARE1_ENUM_ITER::operator()(void) __ptr64
??RSHARE1_ENUM_ITER@@QEAAPEBVSHARE1_ENUM_OBJ@@XZ
; public: class SHARE2_ENUM_OBJ const * __ptr64 __cdecl SHARE2_ENUM_ITER::operator()(void) __ptr64
??RSHARE2_ENUM_ITER@@QEAAPEBVSHARE2_ENUM_OBJ@@XZ
; public: class TRIPLE_SERVER_ENUM_OBJ const * __ptr64 __cdecl TRIPLE_SERVER_ENUM_ITER::operator()(void) __ptr64
??RTRIPLE_SERVER_ENUM_ITER@@QEAAPEBVTRIPLE_SERVER_ENUM_OBJ@@XZ
; public: class USE1_ENUM_OBJ const * __ptr64 __cdecl USE1_ENUM_ITER::operator()(void) __ptr64
??RUSE1_ENUM_ITER@@QEAAPEBVUSE1_ENUM_OBJ@@XZ
; public: class USER0_ENUM_OBJ const * __ptr64 __cdecl USER0_ENUM_ITER::operator()(long * __ptr64,int) __ptr64
??RUSER0_ENUM_ITER@@QEAAPEBVUSER0_ENUM_OBJ@@PEAJH@Z
; public: long __cdecl SLIST_OF_NLS_STR::Add(class NLS_STR const * __ptr64) __ptr64
?Add@SLIST_OF_NLS_STR@@QEAAJPEBVNLS_STR@@@Z
; public: long __cdecl OS_ACL::AddACE(unsigned long,class OS_ACE const & __ptr64) __ptr64
?AddACE@OS_ACL@@QEAAJKAEBVOS_ACE@@@Z
; public: long __cdecl MEMBERSHIP_LM_OBJ::AddAssocName(unsigned short const * __ptr64) __ptr64
?AddAssocName@MEMBERSHIP_LM_OBJ@@QEAAJPEBG@Z
; private: static long __cdecl DOMAIN_WITH_DC_CACHE::AddDcCache(struct _DC_CACHE_ENTRY * __ptr64 * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64)
?AddDcCache@DOMAIN_WITH_DC_CACHE@@CAJPEAPEAU_DC_CACHE_ENTRY@@PEBG1@Z
; private: void __cdecl BROWSE_DOMAIN_INFO::AddDomainSource(unsigned long) __ptr64
?AddDomainSource@BROWSE_DOMAIN_INFO@@AEAAXK@Z
; private: long __cdecl BROWSE_DOMAIN_ENUM::AddDomainToList(unsigned short const * __ptr64,unsigned long,int) __ptr64
?AddDomainToList@BROWSE_DOMAIN_ENUM@@AEAAJPEBGKH@Z
; public: long __cdecl SAM_ALIAS::AddMember(void * __ptr64) __ptr64
?AddMember@SAM_ALIAS@@QEAAJPEAX@Z
; public: long __cdecl SAM_GROUP::AddMember(unsigned long) __ptr64
?AddMember@SAM_GROUP@@QEAAJK@Z
; public: long __cdecl SAM_ALIAS::AddMembers(void * __ptr64 * __ptr64,unsigned int) __ptr64
?AddMembers@SAM_ALIAS@@QEAAJPEAPEAXI@Z
; public: long __cdecl SAM_GROUP::AddMembers(unsigned long * __ptr64,unsigned int) __ptr64
?AddMembers@SAM_GROUP@@QEAAJPEAKI@Z
; public: long __cdecl OS_PRIVILEGE_SET::AddPrivilege(struct _LUID,unsigned long) __ptr64
?AddPrivilege@OS_PRIVILEGE_SET@@QEAAJU_LUID@@K@Z
; public: long __cdecl SLIST_OF_ADMIN_AUTHORITY::Append(class ADMIN_AUTHORITY const * __ptr64) __ptr64
?Append@SLIST_OF_ADMIN_AUTHORITY@@QEAAJPEBVADMIN_AUTHORITY@@@Z
; public: long __cdecl SLIST_OF_API_SESSION::Append(class API_SESSION const * __ptr64) __ptr64
?Append@SLIST_OF_API_SESSION@@QEAAJPEBVAPI_SESSION@@@Z
; public: long __cdecl SLIST_OF_BROWSE_DOMAIN_INFO::Append(class BROWSE_DOMAIN_INFO const * __ptr64) __ptr64
?Append@SLIST_OF_BROWSE_DOMAIN_INFO@@QEAAJPEBVBROWSE_DOMAIN_INFO@@@Z
; public: long __cdecl SLIST_OF_LM_RESUME_BUFFER::Append(class LM_RESUME_BUFFER const * __ptr64) __ptr64
?Append@SLIST_OF_LM_RESUME_BUFFER@@QEAAJPEBVLM_RESUME_BUFFER@@@Z
; public: long __cdecl SLIST_OF_NLS_STR::Append(class NLS_STR const * __ptr64) __ptr64
?Append@SLIST_OF_NLS_STR@@QEAAJPEBVNLS_STR@@@Z
; public: int __cdecl CHARDEVQ1_ENUM_ITER::Backup(void) __ptr64
?Backup@CHARDEVQ1_ENUM_ITER@@QEAAHXZ
; public: int __cdecl CONN0_ENUM_ITER::Backup(void) __ptr64
?Backup@CONN0_ENUM_ITER@@QEAAHXZ
; public: int __cdecl CONN1_ENUM_ITER::Backup(void) __ptr64
?Backup@CONN1_ENUM_ITER@@QEAAHXZ
; public: int __cdecl CONTEXT_ENUM_ITER::Backup(void) __ptr64
?Backup@CONTEXT_ENUM_ITER@@QEAAHXZ
; public: int __cdecl DOMAIN0_ENUM_ITER::Backup(void) __ptr64
?Backup@DOMAIN0_ENUM_ITER@@QEAAHXZ
; public: int __cdecl GROUP0_ENUM_ITER::Backup(void) __ptr64
?Backup@GROUP0_ENUM_ITER@@QEAAHXZ
; public: int __cdecl GROUP1_ENUM_ITER::Backup(void) __ptr64
?Backup@GROUP1_ENUM_ITER@@QEAAHXZ
; public: int __cdecl SERVER1_ENUM_ITER::Backup(void) __ptr64
?Backup@SERVER1_ENUM_ITER@@QEAAHXZ
; public: int __cdecl SERVICE_ENUM_ITER::Backup(void) __ptr64
?Backup@SERVICE_ENUM_ITER@@QEAAHXZ
; public: int __cdecl SESSION0_ENUM_ITER::Backup(void) __ptr64
?Backup@SESSION0_ENUM_ITER@@QEAAHXZ
; public: int __cdecl SESSION1_ENUM_ITER::Backup(void) __ptr64
?Backup@SESSION1_ENUM_ITER@@QEAAHXZ
; public: int __cdecl SHARE1_ENUM_ITER::Backup(void) __ptr64
?Backup@SHARE1_ENUM_ITER@@QEAAHXZ
; public: int __cdecl SHARE2_ENUM_ITER::Backup(void) __ptr64
?Backup@SHARE2_ENUM_ITER@@QEAAHXZ
; public: int __cdecl TRIPLE_SERVER_ENUM_ITER::Backup(void) __ptr64
?Backup@TRIPLE_SERVER_ENUM_ITER@@QEAAHXZ
; public: int __cdecl USE1_ENUM_ITER::Backup(void) __ptr64
?Backup@USE1_ENUM_ITER@@QEAAHXZ
; public: static long __cdecl NT_ACCOUNTS_UTILITY::BuildAndCopySysSid(class OS_SID * __ptr64,struct _SID_IDENTIFIER_AUTHORITY * __ptr64,unsigned char,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long)
?BuildAndCopySysSid@NT_ACCOUNTS_UTILITY@@SAJPEAVOS_SID@@PEAU_SID_IDENTIFIER_AUTHORITY@@EKKKKKKKK@Z
; public: static long __cdecl NT_ACCOUNTS_UTILITY::BuildQualifiedAccountName(class NLS_STR * __ptr64,class NLS_STR const & __ptr64,class NLS_STR const & __ptr64,class NLS_STR const * __ptr64,class NLS_STR const * __ptr64,enum _SID_NAME_USE)
?BuildQualifiedAccountName@NT_ACCOUNTS_UTILITY@@SAJPEAVNLS_STR@@AEBV2@1PEBV2@2W4_SID_NAME_USE@@@Z
; public: static long __cdecl NT_ACCOUNTS_UTILITY::BuildQualifiedAccountName(class NLS_STR * __ptr64,class NLS_STR const & __ptr64,void * __ptr64,class NLS_STR const & __ptr64,class NLS_STR const * __ptr64,void * __ptr64,enum _SID_NAME_USE)
?BuildQualifiedAccountName@NT_ACCOUNTS_UTILITY@@SAJPEAVNLS_STR@@AEBV2@PEAX1PEBV2@2W4_SID_NAME_USE@@@Z
; private: virtual long __cdecl ALIAS_ENUM::CallAPI(int,unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@ALIAS_ENUM@@EEAAJHPEAPEAEPEAI@Z
; private: virtual long __cdecl CHARDEVQ_ENUM::CallAPI(unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@CHARDEVQ_ENUM@@EEAAJPEAPEAEPEAI@Z
; private: virtual long __cdecl CONN_ENUM::CallAPI(unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@CONN_ENUM@@EEAAJPEAPEAEPEAI@Z
; protected: virtual long __cdecl CONTEXT_ENUM::CallAPI(unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@CONTEXT_ENUM@@MEAAJPEAPEAEPEAI@Z
; protected: virtual long __cdecl DEVICE2::CallAPI(void) __ptr64
?CallAPI@DEVICE2@@MEAAJXZ
; protected: virtual long __cdecl DEVICE::CallAPI(void) __ptr64
?CallAPI@DEVICE@@MEAAJXZ
; private: virtual long __cdecl DOMAIN_ENUM::CallAPI(unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@DOMAIN_ENUM@@EEAAJPEAPEAEPEAI@Z
; private: virtual long __cdecl FILE_ENUM::CallAPI(int,unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@FILE_ENUM@@EEAAJHPEAPEAEPEAI@Z
; private: virtual long __cdecl GROUP_ENUM::CallAPI(unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@GROUP_ENUM@@EEAAJPEAPEAEPEAI@Z
; protected: virtual long __cdecl GROUP_MEMB::CallAPI(unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@GROUP_MEMB@@MEAAJPEAPEAEPEAI@Z
; private: virtual long __cdecl LSA_ACCOUNTS_ENUM::CallAPI(int,unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@LSA_ACCOUNTS_ENUM@@EEAAJHPEAPEAEPEAI@Z
; protected: virtual long __cdecl LSA_PRIVILEGES_ENUM::CallAPI(int,unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@LSA_PRIVILEGES_ENUM@@MEAAJHPEAPEAEPEAI@Z
; private: virtual long __cdecl NT_ACCOUNT_ENUM::CallAPI(int,unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@NT_ACCOUNT_ENUM@@EEAAJHPEAPEAEPEAI@Z
; private: virtual long __cdecl SAM_USER_ENUM::CallAPI(int,unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@SAM_USER_ENUM@@EEAAJHPEAPEAEPEAI@Z
; private: virtual long __cdecl SERVER_ENUM::CallAPI(unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@SERVER_ENUM@@EEAAJPEAPEAEPEAI@Z
; private: virtual long __cdecl SERVICE_ENUM::CallAPI(unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@SERVICE_ENUM@@EEAAJPEAPEAEPEAI@Z
; private: virtual long __cdecl SESSION_ENUM::CallAPI(unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@SESSION_ENUM@@EEAAJPEAPEAEPEAI@Z
; private: virtual long __cdecl SHARE_ENUM::CallAPI(unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@SHARE_ENUM@@EEAAJPEAPEAEPEAI@Z
; private: virtual long __cdecl TRIPLE_SERVER_ENUM::CallAPI(unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@TRIPLE_SERVER_ENUM@@EEAAJPEAPEAEPEAI@Z
; private: virtual long __cdecl TRUSTED_DOMAIN_ENUM::CallAPI(int,unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@TRUSTED_DOMAIN_ENUM@@EEAAJHPEAPEAEPEAI@Z
; private: virtual long __cdecl USER_ENUM::CallAPI(int,unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@USER_ENUM@@EEAAJHPEAPEAEPEAI@Z
; protected: virtual long __cdecl USER_MEMB::CallAPI(unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@USER_MEMB@@MEAAJPEAPEAEPEAI@Z
; private: virtual long __cdecl USE_ENUM::CallAPI(unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?CallAPI@USE_ENUM@@EEAAJPEAPEAEPEAI@Z
; public: long __cdecl SC_SERVICE::ChangeConfig(unsigned int,unsigned int,unsigned int,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?ChangeConfig@SC_SERVICE@@QEAAJIIIPEBG00000@Z
; public: long __cdecl NEW_LM_OBJ::ChangeToNew(void) __ptr64
?ChangeToNew@NEW_LM_OBJ@@QEAAJXZ
; public: long __cdecl LOCATION::CheckIfNT(int * __ptr64) __ptr64
?CheckIfNT@LOCATION@@QEAAJPEAH@Z
; public: long __cdecl LOCATION::CheckIfNT(int * __ptr64,enum LOCATION_NT_TYPE * __ptr64) __ptr64
?CheckIfNT@LOCATION@@QEAAJPEAHPEAW4LOCATION_NT_TYPE@@@Z
; public: long __cdecl LSA_POLICY::CheckIfShutDownOnFull(int * __ptr64) __ptr64
?CheckIfShutDownOnFull@LSA_POLICY@@QEAAJPEAH@Z
; protected: void __cdecl LSA_POLICY::CleanupUnistrArray(struct _UNICODE_STRING * __ptr64,unsigned long) __ptr64
?CleanupUnistrArray@LSA_POLICY@@IEAAXPEAU_UNICODE_STRING@@K@Z
; public: void __cdecl OS_PRIVILEGE_SET::Clear(void) __ptr64
?Clear@OS_PRIVILEGE_SET@@QEAAXXZ
; public: void __cdecl SLIST_OF_ADMIN_AUTHORITY::Clear(void) __ptr64
?Clear@SLIST_OF_ADMIN_AUTHORITY@@QEAAXXZ
; public: void __cdecl SLIST_OF_API_SESSION::Clear(void) __ptr64
?Clear@SLIST_OF_API_SESSION@@QEAAXXZ
; public: void __cdecl SLIST_OF_BROWSE_DOMAIN_INFO::Clear(void) __ptr64
?Clear@SLIST_OF_BROWSE_DOMAIN_INFO@@QEAAXXZ
; public: void __cdecl SLIST_OF_LM_RESUME_BUFFER::Clear(void) __ptr64
?Clear@SLIST_OF_LM_RESUME_BUFFER@@QEAAXXZ
; protected: long __cdecl NEW_LM_OBJ::ClearBuffer(void) __ptr64
?ClearBuffer@NEW_LM_OBJ@@IEAAJXZ
; private: static long __cdecl DOMAIN_WITH_DC_CACHE::ClearDcCache(struct _DC_CACHE_ENTRY * __ptr64)
?ClearDcCache@DOMAIN_WITH_DC_CACHE@@CAJPEAU_DC_CACHE_ENTRY@@@Z
; public: long __cdecl NET_ACCESS_1::ClearPerms(void) __ptr64
?ClearPerms@NET_ACCESS_1@@QEAAJXZ
; public: long __cdecl GROUP_1::CloneFrom(class GROUP_1 const & __ptr64) __ptr64
?CloneFrom@GROUP_1@@QEAAJAEBV1@@Z
; public: long __cdecl GROUP_MEMB::CloneFrom(class GROUP_MEMB const & __ptr64) __ptr64
?CloneFrom@GROUP_MEMB@@QEAAJAEBV1@@Z
; public: long __cdecl SHARE_1::CloneFrom(class SHARE_1 const & __ptr64) __ptr64
?CloneFrom@SHARE_1@@QEAAJAEBV1@@Z
; public: long __cdecl SHARE_2::CloneFrom(class SHARE_2 const & __ptr64) __ptr64
?CloneFrom@SHARE_2@@QEAAJAEBV1@@Z
; public: long __cdecl USER_2::CloneFrom(class USER_2 const & __ptr64) __ptr64
?CloneFrom@USER_2@@QEAAJAEBV1@@Z
; public: long __cdecl USER_3::CloneFrom(class USER_3 const & __ptr64) __ptr64
?CloneFrom@USER_3@@QEAAJAEBV1@@Z
; public: long __cdecl USER_MEMB::CloneFrom(class USER_MEMB const & __ptr64) __ptr64
?CloneFrom@USER_MEMB@@QEAAJAEBV1@@Z
; public: long __cdecl SERVICE_CONTROL::Close(void) __ptr64
?Close@SERVICE_CONTROL@@QEAAJXZ
; public: long __cdecl LM_FILE::CloseFile(void) __ptr64
?CloseFile@LM_FILE@@QEAAJXZ
; public: long __cdecl LSA_OBJECT::CloseHandle(int) __ptr64
?CloseHandle@LSA_OBJECT@@QEAAJH@Z
; public: long __cdecl SAM_OBJECT::CloseHandle(void) __ptr64
?CloseHandle@SAM_OBJECT@@QEAAJXZ
; private: void __cdecl TRIPLE_SERVER_ENUM::CombineIntoTriple(struct _SERVER_INFO_101 const * __ptr64,struct _KNOWN_SERVER_INFO const * __ptr64,struct _TRIPLE_SERVER_INFO * __ptr64) __ptr64
?CombineIntoTriple@TRIPLE_SERVER_ENUM@@AEAAXPEBU_SERVER_INFO_101@@PEBU_KNOWN_SERVER_INFO@@PEAU_TRIPLE_SERVER_INFO@@@Z
; public: long __cdecl OS_ACL_SUBJECT_ITER::Compare(int * __ptr64,class OS_ACL_SUBJECT_ITER * __ptr64) __ptr64
?Compare@OS_ACL_SUBJECT_ITER@@QEAAJPEAHPEAV1@@Z
; public: long __cdecl OS_SECURITY_DESCRIPTOR::Compare(class OS_SECURITY_DESCRIPTOR * __ptr64,int * __ptr64,int * __ptr64,int * __ptr64,int * __ptr64,struct _GENERIC_MAPPING * __ptr64,struct _GENERIC_MAPPING * __ptr64,int,int) __ptr64
?Compare@OS_SECURITY_DESCRIPTOR@@QEAAJPEAV1@PEAH111PEAU_GENERIC_MAPPING@@2HH@Z
; public: int __cdecl NET_ACCESS_1::CompareACL(class NET_ACCESS_1 * __ptr64) __ptr64
?CompareACL@NET_ACCESS_1@@QEAAHPEAV1@@Z
; private: static int __cdecl TRIPLE_SERVER_ENUM::CompareBrowserServers(void const * __ptr64,void const * __ptr64)
?CompareBrowserServers@TRIPLE_SERVER_ENUM@@CAHPEBX0@Z
; public: virtual int __cdecl OS_DACL_SUBJECT_ITER::CompareCurrentSubject(class OS_ACL_SUBJECT_ITER * __ptr64) __ptr64
?CompareCurrentSubject@OS_DACL_SUBJECT_ITER@@UEAAHPEAVOS_ACL_SUBJECT_ITER@@@Z
; public: virtual int __cdecl OS_SACL_SUBJECT_ITER::CompareCurrentSubject(class OS_ACL_SUBJECT_ITER * __ptr64) __ptr64
?CompareCurrentSubject@OS_SACL_SUBJECT_ITER@@UEAAHPEAVOS_ACL_SUBJECT_ITER@@@Z
; private: static int __cdecl DOMAIN0_ENUM::CompareDomains0(void const * __ptr64,void const * __ptr64)
?CompareDomains0@DOMAIN0_ENUM@@CAHPEBX0@Z
; private: static int __cdecl TRIPLE_SERVER_ENUM::CompareLmServers(void const * __ptr64,void const * __ptr64)
?CompareLmServers@TRIPLE_SERVER_ENUM@@CAHPEBX0@Z
; private: static int __cdecl TRIPLE_SERVER_ENUM::CompareNtServers(void const * __ptr64,void const * __ptr64)
?CompareNtServers@TRIPLE_SERVER_ENUM@@CAHPEBX0@Z
; public: long __cdecl DEVICE2::Connect(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
?Connect@DEVICE2@@QEAAJPEBG000K@Z
; public: long __cdecl DEVICE::Connect(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?Connect@DEVICE@@QEAAJPEBG0@Z
; long __cdecl ConnectToNullSession(class NLS_STR const & __ptr64)
?ConnectToNullSession@@YAJAEBVNLS_STR@@@Z
; public: long __cdecl LM_SERVICE::Continue(unsigned int,unsigned int) __ptr64
?Continue@LM_SERVICE@@QEAAJII@Z
; public: long __cdecl SC_SERVICE::Control(unsigned int,struct _SERVICE_STATUS * __ptr64) __ptr64
?Control@SC_SERVICE@@QEAAJIPEAU_SERVICE_STATUS@@@Z
; public: long __cdecl OS_ACL::Copy(class OS_ACL const & __ptr64,int) __ptr64
?Copy@OS_ACL@@QEAAJAEBV1@H@Z
; public: long __cdecl OS_SECURITY_DESCRIPTOR::Copy(class OS_SECURITY_DESCRIPTOR const & __ptr64) __ptr64
?Copy@OS_SECURITY_DESCRIPTOR@@QEAAJAEBV1@@Z
; public: long __cdecl OS_SID::Copy(class OS_SID const & __ptr64) __ptr64
?Copy@OS_SID@@QEAAJAEBV1@@Z
; public: long __cdecl NET_ACCESS_1::CopyAccessPerms(class NET_ACCESS_1 const & __ptr64) __ptr64
?CopyAccessPerms@NET_ACCESS_1@@QEAAJAEBV1@@Z
; private: void __cdecl SERVICE_ENUM::CountServices(unsigned char * __ptr64,unsigned int * __ptr64,unsigned int * __ptr64) __ptr64
?CountServices@SERVICE_ENUM@@AEAAXPEAEPEAI1@Z
; public: static long __cdecl NT_ACCOUNTS_UTILITY::CrackQualifiedAccountName(class NLS_STR const & __ptr64,class NLS_STR * __ptr64,class NLS_STR * __ptr64)
?CrackQualifiedAccountName@NT_ACCOUNTS_UTILITY@@SAJAEBVNLS_STR@@PEAV2@1@Z
; public: long __cdecl LSA_SECRET::Create(class LSA_POLICY const & __ptr64,unsigned long) __ptr64
?Create@LSA_SECRET@@QEAAJAEBVLSA_POLICY@@K@Z
; public: long __cdecl NEW_LM_OBJ::CreateNew(void) __ptr64
?CreateNew@NEW_LM_OBJ@@QEAAJXZ
; private: void __cdecl DOMAIN::CtAux(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?CtAux@DOMAIN@@AEAAXPEBG0@Z
; private: void __cdecl GROUP::CtAux(unsigned short const * __ptr64) __ptr64
?CtAux@GROUP@@AEAAXPEBG@Z
; private: void __cdecl GROUP_1::CtAux(void) __ptr64
?CtAux@GROUP_1@@AEAAXXZ
; private: void __cdecl LOC_LM_OBJ::CtAux(void) __ptr64
?CtAux@LOC_LM_OBJ@@AEAAXXZ
; private: void __cdecl USER::CtAux(unsigned short const * __ptr64) __ptr64
?CtAux@USER@@AEAAXPEBG@Z
; private: void __cdecl USER_11::CtAux(void) __ptr64
?CtAux@USER_11@@AEAAXXZ
; private: void __cdecl USER_2::CtAux(void) __ptr64
?CtAux@USER_2@@AEAAXXZ
; private: void __cdecl USER_3::CtAux(void) __ptr64
?CtAux@USER_3@@AEAAXXZ
; public: long __cdecl LSA_TRUSTED_DOMAIN::Delete(void) __ptr64
?Delete@LSA_TRUSTED_DOMAIN@@QEAAJXZ
; public: long __cdecl NET_ACCESS::Delete(void) __ptr64
?Delete@NET_ACCESS@@QEAAJXZ
; public: long __cdecl NEW_LM_OBJ::Delete(unsigned int) __ptr64
?Delete@NEW_LM_OBJ@@QEAAJI@Z
; public: long __cdecl SAM_ALIAS::Delete(void) __ptr64
?Delete@SAM_ALIAS@@QEAAJXZ
; public: long __cdecl SC_SERVICE::Delete(void) __ptr64
?Delete@SC_SERVICE@@QEAAJXZ
; public: long __cdecl OS_ACL::DeleteACE(unsigned long) __ptr64
?DeleteACE@OS_ACL@@QEAAJK@Z
; protected: long __cdecl LSA_POLICY::DeleteAllTrustedDomains(void) __ptr64
?DeleteAllTrustedDomains@LSA_POLICY@@IEAAJXZ
; public: long __cdecl MEMBERSHIP_LM_OBJ::DeleteAssocName(unsigned int) __ptr64
?DeleteAssocName@MEMBERSHIP_LM_OBJ@@QEAAJI@Z
; public: long __cdecl MEMBERSHIP_LM_OBJ::DeleteAssocName(unsigned short const * __ptr64) __ptr64
?DeleteAssocName@MEMBERSHIP_LM_OBJ@@QEAAJPEBG@Z
; public: long __cdecl LSA_ACCOUNT::DeletePrivilege(struct _LUID) __ptr64
?DeletePrivilege@LSA_ACCOUNT@@QEAAJU_LUID@@@Z
; private: void __cdecl LM_ENUM::DeregisterIter(void) __ptr64
?DeregisterIter@LM_ENUM@@AEAAXXZ
; private: void __cdecl LM_RESUME_ENUM::DeregisterIter(void) __ptr64
?DeregisterIter@LM_RESUME_ENUM@@AEAAXXZ
; private: long __cdecl BROWSE_DOMAIN_ENUM::DetermineIfDomainMember(int * __ptr64) __ptr64
?DetermineIfDomainMember@BROWSE_DOMAIN_ENUM@@AEAAJPEAH@Z
; public: long __cdecl DEVICE::Disconnect(unsigned int) __ptr64
?Disconnect@DEVICE@@QEAAJI@Z
; public: long __cdecl DEVICE::Disconnect(unsigned short const * __ptr64,unsigned int) __ptr64
?Disconnect@DEVICE@@QEAAJPEBGI@Z
; public: long __cdecl LSA_POLICY::DistrustDomain(void * __ptr64 const,class NLS_STR const & __ptr64,int) __ptr64
?DistrustDomain@LSA_POLICY@@QEAAJQEAXAEBVNLS_STR@@H@Z
; public: int __cdecl LM_RESUME_ENUM::DoesKeepBuffers(void)const  __ptr64
?DoesKeepBuffers@LM_RESUME_ENUM@@QEBAHXZ
; private: virtual unsigned char * __ptr64 __cdecl ENUM_CALLER_LM_OBJ::EC_QueryBufferPtr(void)const  __ptr64
?EC_QueryBufferPtr@ENUM_CALLER_LM_OBJ@@EEBAPEAEXZ
; private: virtual unsigned char * __ptr64 __cdecl LM_ENUM::EC_QueryBufferPtr(void)const  __ptr64
?EC_QueryBufferPtr@LM_ENUM@@EEBAPEAEXZ
; private: virtual unsigned int __cdecl ENUM_CALLER_LM_OBJ::EC_QueryBufferSize(void)const  __ptr64
?EC_QueryBufferSize@ENUM_CALLER_LM_OBJ@@EEBAIXZ
; private: virtual long __cdecl ENUM_CALLER_LM_OBJ::EC_ResizeBuffer(unsigned int) __ptr64
?EC_ResizeBuffer@ENUM_CALLER_LM_OBJ@@EEAAJI@Z
; private: virtual long __cdecl ENUM_CALLER_LM_OBJ::EC_SetBufferPtr(unsigned char * __ptr64) __ptr64
?EC_SetBufferPtr@ENUM_CALLER_LM_OBJ@@EEAAJPEAE@Z
; private: virtual long __cdecl LM_ENUM::EC_SetBufferPtr(unsigned char * __ptr64) __ptr64
?EC_SetBufferPtr@LM_ENUM@@EEAAJPEAE@Z
; private: static long __cdecl DOMAIN_WITH_DC_CACHE::EnterCriticalSection(void)
?EnterCriticalSection@DOMAIN_WITH_DC_CACHE@@CAJXZ
; unsigned long __cdecl EnumAllComms(void)
?EnumAllComms@@YAKXZ
; unsigned long __cdecl EnumAllDrives(void)
?EnumAllDrives@@YAKXZ
; unsigned long __cdecl EnumAllLPTs(void)
?EnumAllLPTs@@YAKXZ
; private: unsigned short const * __ptr64 __cdecl ITER_DEVICE::EnumComms(void) __ptr64
?EnumComms@ITER_DEVICE@@AEAAPEBGXZ
; public: long __cdecl SC_SERVICE::EnumDependent(unsigned int,struct _ENUM_SERVICE_STATUSW * __ptr64 * __ptr64,unsigned long * __ptr64) __ptr64
?EnumDependent@SC_SERVICE@@QEAAJIPEAPEAU_ENUM_SERVICE_STATUSW@@PEAK@Z
; private: unsigned short const * __ptr64 __cdecl ITER_DEVICE::EnumDrives(void) __ptr64
?EnumDrives@ITER_DEVICE@@AEAAPEBGXZ
; private: unsigned short const * __ptr64 __cdecl ITER_DEVICE::EnumLPTs(void) __ptr64
?EnumLPTs@ITER_DEVICE@@AEAAPEBGXZ
; private: long __cdecl SERVICE_ENUM::EnumLmServices(unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?EnumLmServices@SERVICE_ENUM@@AEAAJPEAPEAEPEAI@Z
; unsigned long __cdecl EnumLocalComms(void)
?EnumLocalComms@@YAKXZ
; unsigned long __cdecl EnumLocalDrives(void)
?EnumLocalDrives@@YAKXZ
; unsigned long __cdecl EnumLocalLPTs(void)
?EnumLocalLPTs@@YAKXZ
; unsigned long __cdecl EnumNetComms(void)
?EnumNetComms@@YAKXZ
; unsigned long __cdecl EnumNetDevices(int)
?EnumNetDevices@@YAKH@Z
; unsigned long __cdecl EnumNetDrives(void)
?EnumNetDrives@@YAKXZ
; unsigned long __cdecl EnumNetLPTs(void)
?EnumNetLPTs@@YAKXZ
; private: long __cdecl SERVICE_ENUM::EnumNtServices(unsigned char * __ptr64 * __ptr64,unsigned int * __ptr64) __ptr64
?EnumNtServices@SERVICE_ENUM@@AEAAJPEAPEAEPEAI@Z
; public: long __cdecl SC_MANAGER::EnumServiceStatus(unsigned int,unsigned int,struct _ENUM_SERVICE_STATUSW * __ptr64 * __ptr64,unsigned long * __ptr64,unsigned short const * __ptr64) __ptr64
?EnumServiceStatus@SC_MANAGER@@QEAAJIIPEAPEAU_ENUM_SERVICE_STATUSW@@PEAKPEBG@Z
; unsigned long __cdecl EnumUnavailComms(void)
?EnumUnavailComms@@YAKXZ
; unsigned long __cdecl EnumUnavailDevices(int)
?EnumUnavailDevices@@YAKH@Z
; unsigned long __cdecl EnumUnavailDrives(void)
?EnumUnavailDrives@@YAKXZ
; unsigned long __cdecl EnumUnavailLPTs(void)
?EnumUnavailLPTs@@YAKXZ
; public: long __cdecl SAM_DOMAIN::EnumerateAliases(class SAM_RID_ENUMERATION_MEM * __ptr64,unsigned long * __ptr64,unsigned long)const  __ptr64
?EnumerateAliases@SAM_DOMAIN@@QEBAJPEAVSAM_RID_ENUMERATION_MEM@@PEAKK@Z
; public: long __cdecl SAM_DOMAIN::EnumerateAliasesForUser(void * __ptr64,class SAM_RID_MEM * __ptr64)const  __ptr64
?EnumerateAliasesForUser@SAM_DOMAIN@@QEBAJPEAXPEAVSAM_RID_MEM@@@Z
; public: long __cdecl SAM_DOMAIN::EnumerateGroups(class SAM_RID_ENUMERATION_MEM * __ptr64,unsigned long * __ptr64,unsigned long)const  __ptr64
?EnumerateGroups@SAM_DOMAIN@@QEBAJPEAVSAM_RID_ENUMERATION_MEM@@PEAKK@Z
; public: long __cdecl LSA_POLICY::EnumerateTrustedDomains(class LSA_TRUST_INFO_MEM * __ptr64,unsigned long * __ptr64,unsigned long) __ptr64
?EnumerateTrustedDomains@LSA_POLICY@@QEAAJPEAVLSA_TRUST_INFO_MEM@@PEAKK@Z
; public: long __cdecl SAM_DOMAIN::EnumerateUsers(class SAM_RID_ENUMERATION_MEM * __ptr64,unsigned long * __ptr64,unsigned long,unsigned long)const  __ptr64
?EnumerateUsers@SAM_DOMAIN@@QEBAJPEAVSAM_RID_ENUMERATION_MEM@@PEAKKK@Z
; long __cdecl FillUnicodeString(struct _UNICODE_STRING * __ptr64,class NLS_STR const & __ptr64)
?FillUnicodeString@@YAJPEAU_UNICODE_STRING@@AEBVNLS_STR@@@Z
; private: struct _ACCESS_LIST * __ptr64 __cdecl NET_ACCESS_1::FindACE(unsigned short const * __ptr64,enum PERMNAME_TYPE)const  __ptr64
?FindACE@NET_ACCESS_1@@AEBAPEAU_ACCESS_LIST@@PEBGW4PERMNAME_TYPE@@@Z
; public: long __cdecl OS_ACL::FindACE(class OS_SID const & __ptr64,int * __ptr64,class OS_ACE * __ptr64,unsigned long * __ptr64,unsigned long)const  __ptr64
?FindACE@OS_ACL@@QEBAJAEBVOS_SID@@PEAHPEAVOS_ACE@@PEAKK@Z
; public: int __cdecl MEMBERSHIP_LM_OBJ::FindAssocName(unsigned short const * __ptr64,unsigned int * __ptr64) __ptr64
?FindAssocName@MEMBERSHIP_LM_OBJ@@QEAAHPEBGPEAI@Z
; private: static unsigned short const * __ptr64 __cdecl DOMAIN_WITH_DC_CACHE::FindDcCache(struct _DC_CACHE_ENTRY const * __ptr64,unsigned short const * __ptr64)
?FindDcCache@DOMAIN_WITH_DC_CACHE@@CAPEBGPEBU_DC_CACHE_ENTRY@@PEBG@Z
; public: class BROWSE_DOMAIN_INFO const * __ptr64 __cdecl BROWSE_DOMAIN_ENUM::FindFirst(unsigned long) __ptr64
?FindFirst@BROWSE_DOMAIN_ENUM@@QEAAPEBVBROWSE_DOMAIN_INFO@@K@Z
; public: class BROWSE_DOMAIN_INFO const * __ptr64 __cdecl BROWSE_DOMAIN_ENUM::FindNext(unsigned long) __ptr64
?FindNext@BROWSE_DOMAIN_ENUM@@QEAAPEBVBROWSE_DOMAIN_INFO@@K@Z
; public: long __cdecl OS_ACL_SUBJECT_ITER::FindNextSubject(int * __ptr64,class OS_SID * __ptr64,class OS_ACE * __ptr64) __ptr64
?FindNextSubject@OS_ACL_SUBJECT_ITER@@QEAAJPEAHPEAVOS_SID@@PEAVOS_ACE@@@Z
; public: long __cdecl OS_PRIVILEGE_SET::FindPrivilege(struct _LUID)const  __ptr64
?FindPrivilege@OS_PRIVILEGE_SET@@QEBAJU_LUID@@@Z
; protected: void __cdecl NEW_LM_OBJ::FixupPointer(unsigned short * __ptr64 * __ptr64,class NEW_LM_OBJ const * __ptr64) __ptr64
?FixupPointer@NEW_LM_OBJ@@IEAAXPEAPEAGPEBV1@@Z
; protected: virtual void __cdecl ALIAS_ENUM::FreeBuffer(unsigned char * __ptr64 * __ptr64) __ptr64
?FreeBuffer@ALIAS_ENUM@@MEAAXPEAPEAE@Z
; protected: virtual void __cdecl FILE_ENUM::FreeBuffer(unsigned char * __ptr64 * __ptr64) __ptr64
?FreeBuffer@FILE_ENUM@@MEAAXPEAPEAE@Z
; protected: virtual void __cdecl LOC_LM_RESUME_ENUM::FreeBuffer(unsigned char * __ptr64 * __ptr64) __ptr64
?FreeBuffer@LOC_LM_RESUME_ENUM@@MEAAXPEAPEAE@Z
; protected: virtual void __cdecl LSA_ENUM::FreeBuffer(unsigned char * __ptr64 * __ptr64) __ptr64
?FreeBuffer@LSA_ENUM@@MEAAXPEAPEAE@Z
; protected: virtual void __cdecl LSA_MEMORY::FreeBuffer(void) __ptr64
?FreeBuffer@LSA_MEMORY@@MEAAXXZ
; private: void __cdecl LSA_TRUSTED_DC_LIST::FreeBuffer(void) __ptr64
?FreeBuffer@LSA_TRUSTED_DC_LIST@@AEAAXXZ
; protected: virtual void __cdecl NT_ACCOUNT_ENUM::FreeBuffer(unsigned char * __ptr64 * __ptr64) __ptr64
?FreeBuffer@NT_ACCOUNT_ENUM@@MEAAXPEAPEAE@Z
; protected: virtual void __cdecl SAM_MEMORY::FreeBuffer(void) __ptr64
?FreeBuffer@SAM_MEMORY@@MEAAXXZ
; protected: virtual void __cdecl SAM_USER_ENUM::FreeBuffer(unsigned char * __ptr64 * __ptr64) __ptr64
?FreeBuffer@SAM_USER_ENUM@@MEAAXPEAPEAE@Z
; protected: virtual void __cdecl TRUSTED_DOMAIN_ENUM::FreeBuffer(unsigned char * __ptr64 * __ptr64) __ptr64
?FreeBuffer@TRUSTED_DOMAIN_ENUM@@MEAAXPEAPEAE@Z
; void __cdecl FreeUnicodeString(struct _UNICODE_STRING * __ptr64)
?FreeUnicodeString@@YAXPEAU_UNICODE_STRING@@@Z
; public: long __cdecl LSA_POLICY::GetAccountDomain(class LSA_ACCT_DOM_INFO_MEM * __ptr64)const  __ptr64
?GetAccountDomain@LSA_POLICY@@QEBAJPEAVLSA_ACCT_DOM_INFO_MEM@@@Z
; public: static long __cdecl DOMAIN::GetAnyDC(unsigned short const * __ptr64,unsigned short const * __ptr64,class NLS_STR * __ptr64)
?GetAnyDC@DOMAIN@@SAJPEBG0PEAVNLS_STR@@@Z
; public: static long __cdecl DOMAIN_WITH_DC_CACHE::GetAnyDC(unsigned short const * __ptr64,unsigned short const * __ptr64,class NLS_STR * __ptr64)
?GetAnyDC@DOMAIN_WITH_DC_CACHE@@SAJPEBG0PEAVNLS_STR@@@Z
; protected: static long __cdecl DOMAIN::GetAnyDCWorker(unsigned short const * __ptr64,unsigned short const * __ptr64,class NLS_STR * __ptr64,int)
?GetAnyDCWorker@DOMAIN@@KAJPEBG0PEAVNLS_STR@@H@Z
; protected: static long __cdecl DOMAIN_WITH_DC_CACHE::GetAnyDCWorker(unsigned short const * __ptr64,unsigned short const * __ptr64,class NLS_STR * __ptr64,int)
?GetAnyDCWorker@DOMAIN_WITH_DC_CACHE@@KAJPEBG0PEAVNLS_STR@@H@Z
; public: static long __cdecl DOMAIN::GetAnyValidDC(unsigned short const * __ptr64,unsigned short const * __ptr64,class NLS_STR * __ptr64)
?GetAnyValidDC@DOMAIN@@SAJPEBG0PEAVNLS_STR@@@Z
; public: static long __cdecl DOMAIN_WITH_DC_CACHE::GetAnyValidDC(unsigned short const * __ptr64,unsigned short const * __ptr64,class NLS_STR * __ptr64)
?GetAnyValidDC@DOMAIN_WITH_DC_CACHE@@SAJPEBG0PEAVNLS_STR@@@Z
; public: long __cdecl LSA_POLICY::GetAuditEventInfo(class LSA_AUDIT_EVENT_INFO_MEM * __ptr64) __ptr64
?GetAuditEventInfo@LSA_POLICY@@QEAAJPEAVLSA_AUDIT_EVENT_INFO_MEM@@@Z
; public: long __cdecl ALIAS_ENUM_OBJ::GetComment(class SAM_DOMAIN const & __ptr64,class NLS_STR * __ptr64) __ptr64
?GetComment@ALIAS_ENUM_OBJ@@QEAAJAEBVSAM_DOMAIN@@PEAVNLS_STR@@@Z
; public: long __cdecl SAM_ALIAS::GetComment(class NLS_STR * __ptr64) __ptr64
?GetComment@SAM_ALIAS@@QEAAJPEAVNLS_STR@@@Z
; public: long __cdecl SAM_GROUP::GetComment(class NLS_STR * __ptr64) __ptr64
?GetComment@SAM_GROUP@@QEAAJPEAVNLS_STR@@@Z
; private: long __cdecl NET_NAME::GetDeviceInfo(void) __ptr64
?GetDeviceInfo@NET_NAME@@AEAAJXZ
; public: virtual long __cdecl DEVICE::GetInfo(void) __ptr64
?GetInfo@DEVICE@@UEAAJXZ
; public: virtual long __cdecl DOMAIN::GetInfo(void) __ptr64
?GetInfo@DOMAIN@@UEAAJXZ
; public: virtual long __cdecl DOMAIN_WITH_DC_CACHE::GetInfo(void) __ptr64
?GetInfo@DOMAIN_WITH_DC_CACHE@@UEAAJXZ
; public: long __cdecl LM_ENUM::GetInfo(void) __ptr64
?GetInfo@LM_ENUM@@QEAAJXZ
; public: long __cdecl LM_RESUME_ENUM::GetInfo(int) __ptr64
?GetInfo@LM_RESUME_ENUM@@QEAAJH@Z
; public: long __cdecl NEW_LM_OBJ::GetInfo(void) __ptr64
?GetInfo@NEW_LM_OBJ@@QEAAJXZ
; public: virtual long __cdecl USER_MODALS::GetInfo(void) __ptr64
?GetInfo@USER_MODALS@@UEAAJXZ
; public: virtual long __cdecl USER_MODALS_3::GetInfo(void) __ptr64
?GetInfo@USER_MODALS_3@@UEAAJXZ
; private: long __cdecl LM_RESUME_ENUM::GetInfoMulti(void) __ptr64
?GetInfoMulti@LM_RESUME_ENUM@@AEAAJXZ
; private: long __cdecl LM_RESUME_ENUM::GetInfoSingle(int) __ptr64
?GetInfoSingle@LM_RESUME_ENUM@@AEAAJH@Z
; private: long __cdecl BROWSE_DOMAIN_ENUM::GetLanmanDomains(unsigned long) __ptr64
?GetLanmanDomains@BROWSE_DOMAIN_ENUM@@AEAAJK@Z
; private: long __cdecl BROWSE_DOMAIN_ENUM::GetLogonDomainDC(class NLS_STR * __ptr64) __ptr64
?GetLogonDomainDC@BROWSE_DOMAIN_ENUM@@AEAAJPEAVNLS_STR@@@Z
; public: long __cdecl SAM_ALIAS::GetMembers(class SAM_SID_MEM * __ptr64) __ptr64
?GetMembers@SAM_ALIAS@@QEAAJPEAVSAM_SID_MEM@@@Z
; public: long __cdecl SAM_GROUP::GetMembers(class SAM_RID_MEM * __ptr64) __ptr64
?GetMembers@SAM_GROUP@@QEAAJPEAVSAM_RID_MEM@@@Z
; public: long __cdecl SAM_DOMAIN::GetPasswordInfo(class SAM_PSWD_DOM_INFO_MEM * __ptr64)const  __ptr64
?GetPasswordInfo@SAM_DOMAIN@@QEBAJPEAVSAM_PSWD_DOM_INFO_MEM@@@Z
; public: long __cdecl LSA_POLICY::GetPrimaryDomain(class LSA_PRIMARY_DOM_INFO_MEM * __ptr64)const  __ptr64
?GetPrimaryDomain@LSA_POLICY@@QEBAJPEAVLSA_PRIMARY_DOM_INFO_MEM@@@Z
; public: static long __cdecl NT_ACCOUNTS_UTILITY::GetQualifiedAccountNames(class LSA_POLICY & __ptr64,class SAM_DOMAIN const & __ptr64,void * __ptr64 const * __ptr64,unsigned long,int,class STRLIST * __ptr64,unsigned long * __ptr64,enum _SID_NAME_USE * __ptr64,long * __ptr64,unsigned short const * __ptr64,class STRLIST * __ptr64,class STRLIST * __ptr64,class STRLIST * __ptr64,class STRLIST * __ptr64)
?GetQualifiedAccountNames@NT_ACCOUNTS_UTILITY@@SAJAEAVLSA_POLICY@@AEBVSAM_DOMAIN@@PEBQEAXKHPEAVSTRLIST@@PEAKPEAW4_SID_NAME_USE@@PEAJPEBG3333@Z
; public: static long __cdecl NT_ACCOUNTS_UTILITY::GetQualifiedAccountNames(class LSA_POLICY & __ptr64,void * __ptr64 const,void * __ptr64 const * __ptr64,unsigned long,int,class STRLIST * __ptr64,unsigned long * __ptr64,enum _SID_NAME_USE * __ptr64,long * __ptr64,unsigned short const * __ptr64,class STRLIST * __ptr64,class STRLIST * __ptr64,class STRLIST * __ptr64,class STRLIST * __ptr64)
?GetQualifiedAccountNames@NT_ACCOUNTS_UTILITY@@SAJAEAVLSA_POLICY@@QEAXPEBQEAXKHPEAVSTRLIST@@PEAKPEAW4_SID_NAME_USE@@PEAJPEBG3333@Z
; public: static long __cdecl LM_SRVRES::GetResourceCount(unsigned short const * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64)
?GetResourceCount@LM_SRVRES@@SAJPEBGPEAK11111@Z
; public: long __cdecl LSA_POLICY::GetServerRole(class LSA_SERVER_ROLE_INFO_MEM * __ptr64)const  __ptr64
?GetServerRole@LSA_POLICY@@QEBAJPEAVLSA_SERVER_ROLE_INFO_MEM@@@Z
; public: static long __cdecl LM_SRVRES::GetSessionsCount(unsigned short const * __ptr64,unsigned long * __ptr64)
?GetSessionsCount@LM_SRVRES@@SAJPEBGPEAK@Z
; private: long __cdecl BROWSE_DOMAIN_ENUM::GetTrustingDomains(void) __ptr64
?GetTrustingDomains@BROWSE_DOMAIN_ENUM@@AEAAJXZ
; long __cdecl GetW32ComputerName(class NLS_STR & __ptr64)
?GetW32ComputerName@@YAJAEAVNLS_STR@@@Z
; long __cdecl GetW32UserAndDomainName(class NLS_STR & __ptr64,class NLS_STR & __ptr64)
?GetW32UserAndDomainName@@YAJAEAVNLS_STR@@0@Z
; long __cdecl GetW32UserName(class NLS_STR & __ptr64)
?GetW32UserName@@YAJAEAVNLS_STR@@@Z
; private: long __cdecl BROWSE_DOMAIN_ENUM::GetWorkgroupDomains(void) __ptr64
?GetWorkgroupDomains@BROWSE_DOMAIN_ENUM@@AEAAJXZ
; protected: long __cdecl USER::HandleNullAccount(void) __ptr64
?HandleNullAccount@USER@@IEAAJXZ
; public: int __cdecl OS_DACL_SUBJECT_ITER::HasInheritOnlyAce(void)const  __ptr64
?HasInheritOnlyAce@OS_DACL_SUBJECT_ITER@@QEBAHXZ
; public: int __cdecl OS_SACL_SUBJECT_ITER::HasInheritOnlyAuditAce_F(void)const  __ptr64
?HasInheritOnlyAuditAce_F@OS_SACL_SUBJECT_ITER@@QEBAHXZ
; public: int __cdecl OS_SACL_SUBJECT_ITER::HasInheritOnlyAuditAce_S(void)const  __ptr64
?HasInheritOnlyAuditAce_S@OS_SACL_SUBJECT_ITER@@QEBAHXZ
; protected: int __cdecl LM_RESUME_ENUM_ITER::HasMoreData(void)const  __ptr64
?HasMoreData@LM_RESUME_ENUM_ITER@@IEBAHXZ
; public: int __cdecl OS_DACL_SUBJECT_ITER::HasNewContainerAce(void)const  __ptr64
?HasNewContainerAce@OS_DACL_SUBJECT_ITER@@QEBAHXZ
; public: int __cdecl OS_SACL_SUBJECT_ITER::HasNewContainerAuditAce_F(void)const  __ptr64
?HasNewContainerAuditAce_F@OS_SACL_SUBJECT_ITER@@QEBAHXZ
; public: int __cdecl OS_SACL_SUBJECT_ITER::HasNewContainerAuditAce_S(void)const  __ptr64
?HasNewContainerAuditAce_S@OS_SACL_SUBJECT_ITER@@QEBAHXZ
; public: int __cdecl OS_DACL_SUBJECT_ITER::HasNewObjectAce(void)const  __ptr64
?HasNewObjectAce@OS_DACL_SUBJECT_ITER@@QEBAHXZ
; public: int __cdecl OS_SACL_SUBJECT_ITER::HasNewObjectAuditAce_F(void)const  __ptr64
?HasNewObjectAuditAce_F@OS_SACL_SUBJECT_ITER@@QEBAHXZ
; public: int __cdecl OS_SACL_SUBJECT_ITER::HasNewObjectAuditAce_S(void)const  __ptr64
?HasNewObjectAuditAce_S@OS_SACL_SUBJECT_ITER@@QEBAHXZ
; public: int __cdecl OS_DACL_SUBJECT_ITER::HasThisAce(void)const  __ptr64
?HasThisAce@OS_DACL_SUBJECT_ITER@@QEBAHXZ
; public: int __cdecl OS_SACL_SUBJECT_ITER::HasThisAuditAce_F(void)const  __ptr64
?HasThisAuditAce_F@OS_SACL_SUBJECT_ITER@@QEBAHXZ
; public: int __cdecl OS_SACL_SUBJECT_ITER::HasThisAuditAce_S(void)const  __ptr64
?HasThisAuditAce_S@OS_SACL_SUBJECT_ITER@@QEBAHXZ
; long __cdecl I_AppendToSTRLIST(class STRLIST * __ptr64,class NLS_STR & __ptr64)
?I_AppendToSTRLIST@@YAJPEAVSTRLIST@@AEAVNLS_STR@@@Z
; protected: virtual long __cdecl GROUP_1::I_ChangeToNew(void) __ptr64
?I_ChangeToNew@GROUP_1@@MEAAJXZ
; protected: virtual long __cdecl GROUP_MEMB::I_ChangeToNew(void) __ptr64
?I_ChangeToNew@GROUP_MEMB@@MEAAJXZ
; protected: virtual long __cdecl NEW_LM_OBJ::I_ChangeToNew(void) __ptr64
?I_ChangeToNew@NEW_LM_OBJ@@MEAAJXZ
; protected: virtual long __cdecl USER_2::I_ChangeToNew(void) __ptr64
?I_ChangeToNew@USER_2@@MEAAJXZ
; protected: virtual long __cdecl USER_3::I_ChangeToNew(void) __ptr64
?I_ChangeToNew@USER_3@@MEAAJXZ
; protected: virtual long __cdecl USER_MEMB::I_ChangeToNew(void) __ptr64
?I_ChangeToNew@USER_MEMB@@MEAAJXZ
; protected: virtual long __cdecl GROUP_1::I_CreateNew(void) __ptr64
?I_CreateNew@GROUP_1@@MEAAJXZ
; protected: virtual long __cdecl GROUP_MEMB::I_CreateNew(void) __ptr64
?I_CreateNew@GROUP_MEMB@@MEAAJXZ
; protected: virtual long __cdecl LSA_ACCOUNT::I_CreateNew(void) __ptr64
?I_CreateNew@LSA_ACCOUNT@@MEAAJXZ
; protected: virtual long __cdecl NET_ACCESS_1::I_CreateNew(void) __ptr64
?I_CreateNew@NET_ACCESS_1@@MEAAJXZ
; protected: virtual long __cdecl NEW_LM_OBJ::I_CreateNew(void) __ptr64
?I_CreateNew@NEW_LM_OBJ@@MEAAJXZ
; protected: virtual long __cdecl SHARE_2::I_CreateNew(void) __ptr64
?I_CreateNew@SHARE_2@@MEAAJXZ
; protected: virtual long __cdecl USER_2::I_CreateNew(void) __ptr64
?I_CreateNew@USER_2@@MEAAJXZ
; protected: virtual long __cdecl USER_3::I_CreateNew(void) __ptr64
?I_CreateNew@USER_3@@MEAAJXZ
; protected: virtual long __cdecl USER_MEMB::I_CreateNew(void) __ptr64
?I_CreateNew@USER_MEMB@@MEAAJXZ
; protected: virtual long __cdecl GROUP::I_Delete(unsigned int) __ptr64
?I_Delete@GROUP@@MEAAJI@Z
; protected: virtual long __cdecl LM_SESSION::I_Delete(unsigned int) __ptr64
?I_Delete@LM_SESSION@@MEAAJI@Z
; protected: virtual long __cdecl LSA_ACCOUNT::I_Delete(unsigned int) __ptr64
?I_Delete@LSA_ACCOUNT@@MEAAJI@Z
; protected: virtual long __cdecl NEW_LM_OBJ::I_Delete(unsigned int) __ptr64
?I_Delete@NEW_LM_OBJ@@MEAAJI@Z
; protected: virtual long __cdecl SHARE::I_Delete(unsigned int) __ptr64
?I_Delete@SHARE@@MEAAJI@Z
; protected: virtual long __cdecl USER::I_Delete(unsigned int) __ptr64
?I_Delete@USER@@MEAAJI@Z
; long __cdecl I_FetchAliasFields(class NLS_STR * __ptr64,class ADMIN_AUTHORITY * __ptr64 * __ptr64,class SLIST_OF_ADMIN_AUTHORITY * __ptr64,unsigned long,int,class NLS_STR const & __ptr64,class NLS_STR const * __ptr64,long * __ptr64)
?I_FetchAliasFields@@YAJPEAVNLS_STR@@PEAPEAVADMIN_AUTHORITY@@PEAVSLIST_OF_ADMIN_AUTHORITY@@KHAEBV1@PEBV1@PEAJ@Z
; long __cdecl I_FetchDCList(class LSA_TRANSLATED_NAME_MEM const & __ptr64,class LSA_REF_DOMAIN_MEM const & __ptr64,void * __ptr64,void * __ptr64,class NLS_STR * __ptr64 * __ptr64,class STRLIST * __ptr64,int * __ptr64,long * __ptr64,unsigned short const * __ptr64,int,int,int)
?I_FetchDCList@@YAJAEBVLSA_TRANSLATED_NAME_MEM@@AEBVLSA_REF_DOMAIN_MEM@@PEAX2PEAPEAVNLS_STR@@PEAVSTRLIST@@PEAHPEAJPEBGHHH@Z
; long __cdecl I_FetchGroupFields(class NLS_STR * __ptr64,class NLS_STR const & __ptr64,class NLS_STR const * __ptr64,long * __ptr64)
?I_FetchGroupFields@@YAJPEAVNLS_STR@@AEBV1@PEBV1@PEAJ@Z
; long __cdecl I_FetchUserFields(class NLS_STR * __ptr64,class NLS_STR * __ptr64,unsigned long * __ptr64,class NLS_STR const & __ptr64,class NLS_STR const * __ptr64,long * __ptr64)
?I_FetchUserFields@@YAJPEAVNLS_STR@@0PEAKAEBV1@PEBV1@PEAJ@Z
; protected: virtual long __cdecl GROUP_1::I_GetInfo(void) __ptr64
?I_GetInfo@GROUP_1@@MEAAJXZ
; protected: virtual long __cdecl LM_FILE_2::I_GetInfo(void) __ptr64
?I_GetInfo@LM_FILE_2@@MEAAJXZ
; protected: virtual long __cdecl LM_FILE_3::I_GetInfo(void) __ptr64
?I_GetInfo@LM_FILE_3@@MEAAJXZ
; protected: virtual long __cdecl LM_SESSION_0::I_GetInfo(void) __ptr64
?I_GetInfo@LM_SESSION_0@@MEAAJXZ
; protected: virtual long __cdecl LM_SESSION_10::I_GetInfo(void) __ptr64
?I_GetInfo@LM_SESSION_10@@MEAAJXZ
; protected: virtual long __cdecl LM_SESSION_1::I_GetInfo(void) __ptr64
?I_GetInfo@LM_SESSION_1@@MEAAJXZ
; protected: virtual long __cdecl LM_SESSION_2::I_GetInfo(void) __ptr64
?I_GetInfo@LM_SESSION_2@@MEAAJXZ
; protected: virtual long __cdecl LOCAL_USER::I_GetInfo(void) __ptr64
?I_GetInfo@LOCAL_USER@@MEAAJXZ
; protected: virtual long __cdecl LSA_ACCOUNT::I_GetInfo(void) __ptr64
?I_GetInfo@LSA_ACCOUNT@@MEAAJXZ
; protected: virtual long __cdecl MEMBERSHIP_LM_OBJ::I_GetInfo(void) __ptr64
?I_GetInfo@MEMBERSHIP_LM_OBJ@@MEAAJXZ
; protected: virtual long __cdecl NET_ACCESS_1::I_GetInfo(void) __ptr64
?I_GetInfo@NET_ACCESS_1@@MEAAJXZ
; protected: virtual long __cdecl NEW_LM_OBJ::I_GetInfo(void) __ptr64
?I_GetInfo@NEW_LM_OBJ@@MEAAJXZ
; protected: virtual long __cdecl SERVER_0::I_GetInfo(void) __ptr64
?I_GetInfo@SERVER_0@@MEAAJXZ
; protected: virtual long __cdecl SERVER_1::I_GetInfo(void) __ptr64
?I_GetInfo@SERVER_1@@MEAAJXZ
; protected: virtual long __cdecl SERVER_2::I_GetInfo(void) __ptr64
?I_GetInfo@SERVER_2@@MEAAJXZ
; protected: virtual long __cdecl SHARE_1::I_GetInfo(void) __ptr64
?I_GetInfo@SHARE_1@@MEAAJXZ
; protected: virtual long __cdecl SHARE_2::I_GetInfo(void) __ptr64
?I_GetInfo@SHARE_2@@MEAAJXZ
; protected: virtual long __cdecl TIME_OF_DAY::I_GetInfo(void) __ptr64
?I_GetInfo@TIME_OF_DAY@@MEAAJXZ
; protected: virtual long __cdecl USER_11::I_GetInfo(void) __ptr64
?I_GetInfo@USER_11@@MEAAJXZ
; protected: virtual long __cdecl USER_2::I_GetInfo(void) __ptr64
?I_GetInfo@USER_2@@MEAAJXZ
; protected: virtual long __cdecl USER_3::I_GetInfo(void) __ptr64
?I_GetInfo@USER_3@@MEAAJXZ
; public: virtual long __cdecl WKSTA_10::I_GetInfo(void) __ptr64
?I_GetInfo@WKSTA_10@@UEAAJXZ
; public: virtual long __cdecl WKSTA_1::I_GetInfo(void) __ptr64
?I_GetInfo@WKSTA_1@@UEAAJXZ
; protected: virtual long __cdecl WKSTA_USER_1::I_GetInfo(void) __ptr64
?I_GetInfo@WKSTA_USER_1@@MEAAJXZ
; protected: virtual long __cdecl GROUP_1::I_WriteInfo(void) __ptr64
?I_WriteInfo@GROUP_1@@MEAAJXZ
; protected: virtual long __cdecl GROUP_MEMB::I_WriteInfo(void) __ptr64
?I_WriteInfo@GROUP_MEMB@@MEAAJXZ
; protected: virtual long __cdecl LSA_ACCOUNT::I_WriteInfo(void) __ptr64
?I_WriteInfo@LSA_ACCOUNT@@MEAAJXZ
; protected: virtual long __cdecl NET_ACCESS_1::I_WriteInfo(void) __ptr64
?I_WriteInfo@NET_ACCESS_1@@MEAAJXZ
; protected: virtual long __cdecl NEW_LM_OBJ::I_WriteInfo(void) __ptr64
?I_WriteInfo@NEW_LM_OBJ@@MEAAJXZ
; protected: virtual long __cdecl SERVER_1::I_WriteInfo(void) __ptr64
?I_WriteInfo@SERVER_1@@MEAAJXZ
; protected: virtual long __cdecl SERVER_2::I_WriteInfo(void) __ptr64
?I_WriteInfo@SERVER_2@@MEAAJXZ
; protected: virtual long __cdecl SHARE_1::I_WriteInfo(void) __ptr64
?I_WriteInfo@SHARE_1@@MEAAJXZ
; protected: virtual long __cdecl SHARE_2::I_WriteInfo(void) __ptr64
?I_WriteInfo@SHARE_2@@MEAAJXZ
; protected: virtual long __cdecl USER_2::I_WriteInfo(void) __ptr64
?I_WriteInfo@USER_2@@MEAAJXZ
; protected: virtual long __cdecl USER_3::I_WriteInfo(void) __ptr64
?I_WriteInfo@USER_3@@MEAAJXZ
; protected: virtual long __cdecl USER_MEMB::I_WriteInfo(void) __ptr64
?I_WriteInfo@USER_MEMB@@MEAAJXZ
; protected: virtual long __cdecl WKSTA_USER_1::I_WriteInfo(void) __ptr64
?I_WriteInfo@WKSTA_USER_1@@MEAAJXZ
; private: long __cdecl NET_ACCESS_1::I_WriteInfoAux(void) __ptr64
?I_WriteInfoAux@NET_ACCESS_1@@AEAAJXZ
; protected: virtual long __cdecl GROUP_1::I_WriteNew(void) __ptr64
?I_WriteNew@GROUP_1@@MEAAJXZ
; protected: virtual long __cdecl LSA_ACCOUNT::I_WriteNew(void) __ptr64
?I_WriteNew@LSA_ACCOUNT@@MEAAJXZ
; protected: virtual long __cdecl MEMBERSHIP_LM_OBJ::I_WriteNew(void) __ptr64
?I_WriteNew@MEMBERSHIP_LM_OBJ@@MEAAJXZ
; protected: virtual long __cdecl NET_ACCESS_1::I_WriteNew(void) __ptr64
?I_WriteNew@NET_ACCESS_1@@MEAAJXZ
; protected: virtual long __cdecl NEW_LM_OBJ::I_WriteNew(void) __ptr64
?I_WriteNew@NEW_LM_OBJ@@MEAAJXZ
; protected: virtual long __cdecl SHARE_2::I_WriteNew(void) __ptr64
?I_WriteNew@SHARE_2@@MEAAJXZ
; protected: virtual long __cdecl USER_2::I_WriteNew(void) __ptr64
?I_WriteNew@USER_2@@MEAAJXZ
; protected: virtual long __cdecl USER_3::I_WriteNew(void) __ptr64
?I_WriteNew@USER_3@@MEAAJXZ
; private: static void __cdecl LSA_POLICY::InitObjectAttributes(struct _OBJECT_ATTRIBUTES * __ptr64,struct _SECURITY_QUALITY_OF_SERVICE * __ptr64)
?InitObjectAttributes@LSA_POLICY@@CAXPEAU_OBJECT_ATTRIBUTES@@PEAU_SECURITY_QUALITY_OF_SERVICE@@@Z
; public: void __cdecl OS_SACL_SUBJECT_DESCRIPTOR::InitToZero(void) __ptr64
?InitToZero@OS_SACL_SUBJECT_DESCRIPTOR@@QEAAXXZ
; private: void __cdecl OS_SACL_SUBJECT_ITER::InitToZero(void) __ptr64
?InitToZero@OS_SACL_SUBJECT_ITER@@AEAAXXZ
; private: void __cdecl OS_PRIVILEGE_SET::InitializeMemory(void) __ptr64
?InitializeMemory@OS_PRIVILEGE_SET@@AEAAXXZ
; public: static void __cdecl OS_SID::InitializeMemory(void * __ptr64)
?InitializeMemory@OS_SID@@SAXPEAX@Z
; public: long __cdecl SLIST_OF_BROWSE_DOMAIN_INFO::Insert(class BROWSE_DOMAIN_INFO const * __ptr64,class ITER_SL_BROWSE_DOMAIN_INFO & __ptr64) __ptr64
?Insert@SLIST_OF_BROWSE_DOMAIN_INFO@@QEAAJPEBVBROWSE_DOMAIN_INFO@@AEAVITER_SL_BROWSE_DOMAIN_INFO@@@Z
; public: long __cdecl LSA_ACCOUNT::InsertPrivilege(struct _LUID,unsigned long) __ptr64
?InsertPrivilege@LSA_ACCOUNT@@QEAAJU_LUID@@K@Z
; public: int __cdecl USER_11::IsAccountsOperator(void)const  __ptr64
?IsAccountsOperator@USER_11@@QEBAHXZ
; public: int __cdecl USER_11::IsCommOperator(void)const  __ptr64
?IsCommOperator@USER_11@@QEBAHXZ
; public: int __cdecl OS_ACL_SUBJECT_ITER::IsContainer(void)const  __ptr64
?IsContainer@OS_ACL_SUBJECT_ITER@@QEBAHXZ
; public: int __cdecl LM_SERVICE::IsContinuing(long * __ptr64) __ptr64
?IsContinuing@LM_SERVICE@@QEAAHPEAJ@Z
; public: int __cdecl OS_SECURITY_DESCRIPTOR_CONTROL::IsDACLDefaulted(void)const  __ptr64
?IsDACLDefaulted@OS_SECURITY_DESCRIPTOR_CONTROL@@QEBAHXZ
; public: int __cdecl OS_SECURITY_DESCRIPTOR::IsDACLPresent(void)const  __ptr64
?IsDACLPresent@OS_SECURITY_DESCRIPTOR@@QEBAHXZ
; public: int __cdecl OS_SECURITY_DESCRIPTOR_CONTROL::IsDACLPresent(void)const  __ptr64
?IsDACLPresent@OS_SECURITY_DESCRIPTOR_CONTROL@@QEBAHXZ
; public: int __cdecl LSA_ACCOUNT::IsDefaultSettings(void) __ptr64
?IsDefaultSettings@LSA_ACCOUNT@@QEAAHXZ
; public: int __cdecl OS_DACL_SUBJECT_ITER::IsDenyAll(void)const  __ptr64
?IsDenyAll@OS_DACL_SUBJECT_ITER@@QEBAHXZ
; public: int __cdecl LOCATION::IsDomain(void)const  __ptr64
?IsDomain@LOCATION@@QEBAHXZ
; public: int __cdecl LM_SESSION_1::IsEncrypted(void)const  __ptr64
?IsEncrypted@LM_SESSION_1@@QEBAHXZ
; public: int __cdecl OS_SECURITY_DESCRIPTOR_CONTROL::IsGroupDefaulted(void)const  __ptr64
?IsGroupDefaulted@OS_SECURITY_DESCRIPTOR_CONTROL@@QEBAHXZ
; public: int __cdecl LM_SESSION_1::IsGuest(void)const  __ptr64
?IsGuest@LM_SESSION_1@@QEBAHXZ
; public: int __cdecl LSA_OBJECT::IsHandleValid(void)const  __ptr64
?IsHandleValid@LSA_OBJECT@@QEBAHXZ
; public: int __cdecl OS_ACE::IsInheritOnly(void)const  __ptr64
?IsInheritOnly@OS_ACE@@QEBAHXZ
; public: int __cdecl OS_DACL_SUBJECT_ITER::IsInheritOnlyDenyAll(void)const  __ptr64
?IsInheritOnlyDenyAll@OS_DACL_SUBJECT_ITER@@QEBAHXZ
; public: int __cdecl OS_ACE::IsInheritancePropagated(void)const  __ptr64
?IsInheritancePropagated@OS_ACE@@QEBAHXZ
; public: int __cdecl OS_ACE::IsInherittedByNewContainers(void)const  __ptr64
?IsInherittedByNewContainers@OS_ACE@@QEBAHXZ
; public: int __cdecl OS_ACE::IsInherittedByNewObjects(void)const  __ptr64
?IsInherittedByNewObjects@OS_ACE@@QEBAHXZ
; protected: int __cdecl LM_OBJ::IsInvalid(void)const  __ptr64
?IsInvalid@LM_OBJ@@IEBAHXZ
; private: int __cdecl LM_OBJ_BASE::IsInvalid(void)const  __ptr64
?IsInvalid@LM_OBJ_BASE@@AEBAHXZ
; public: int __cdecl OS_ACE::IsKnownACE(void)const  __ptr64
?IsKnownACE@OS_ACE@@QEBAHXZ
; public: int __cdecl NET_NAME::IsLocal(long * __ptr64) __ptr64
?IsLocal@NET_NAME@@QEAAHPEAJ@Z
; private: int __cdecl NEW_LM_OBJ::IsNew(void)const  __ptr64
?IsNew@NEW_LM_OBJ@@AEBAHXZ
; public: int __cdecl OS_DACL_SUBJECT_ITER::IsNewContainerDenyAll(void)const  __ptr64
?IsNewContainerDenyAll@OS_DACL_SUBJECT_ITER@@QEBAHXZ
; public: int __cdecl OS_DACL_SUBJECT_ITER::IsNewObjectDenyAll(void)const  __ptr64
?IsNewObjectDenyAll@OS_DACL_SUBJECT_ITER@@QEBAHXZ
; protected: int __cdecl NEW_LM_OBJ::IsOKState(void)const  __ptr64
?IsOKState@NEW_LM_OBJ@@IEBAHXZ
; protected: int __cdecl OS_ACE::IsOwnerAlloc(void)const  __ptr64
?IsOwnerAlloc@OS_ACE@@IEBAHXZ
; protected: int __cdecl OS_ACL::IsOwnerAlloc(void)const  __ptr64
?IsOwnerAlloc@OS_ACL@@IEBAHXZ
; private: int __cdecl OS_PRIVILEGE_SET::IsOwnerAlloc(void)const  __ptr64
?IsOwnerAlloc@OS_PRIVILEGE_SET@@AEBAHXZ
; protected: int __cdecl OS_SID::IsOwnerAlloc(void)const  __ptr64
?IsOwnerAlloc@OS_SID@@IEBAHXZ
; public: int __cdecl OS_SECURITY_DESCRIPTOR_CONTROL::IsOwnerDefaulted(void)const  __ptr64
?IsOwnerDefaulted@OS_SECURITY_DESCRIPTOR_CONTROL@@QEBAHXZ
; public: int __cdecl LM_SERVICE::IsPaused(long * __ptr64) __ptr64
?IsPaused@LM_SERVICE@@QEAAHPEAJ@Z
; public: int __cdecl LM_SERVICE::IsPausing(long * __ptr64) __ptr64
?IsPausing@LM_SERVICE@@QEAAHPEAJ@Z
; public: int __cdecl LM_FILE_3::IsPermCreate(void)const  __ptr64
?IsPermCreate@LM_FILE_3@@QEBAHXZ
; public: int __cdecl LM_FILE_3::IsPermRead(void)const  __ptr64
?IsPermRead@LM_FILE_3@@QEBAHXZ
; public: int __cdecl LM_FILE_3::IsPermWrite(void)const  __ptr64
?IsPermWrite@LM_FILE_3@@QEBAHXZ
; public: int __cdecl USER_11::IsPrintOperator(void)const  __ptr64
?IsPrintOperator@USER_11@@QEBAHXZ
; public: int __cdecl OS_SECURITY_DESCRIPTOR_CONTROL::IsSACLDefaulted(void)const  __ptr64
?IsSACLDefaulted@OS_SECURITY_DESCRIPTOR_CONTROL@@QEBAHXZ
; public: int __cdecl OS_SECURITY_DESCRIPTOR::IsSACLPresent(void)const  __ptr64
?IsSACLPresent@OS_SECURITY_DESCRIPTOR@@QEBAHXZ
; public: int __cdecl OS_SECURITY_DESCRIPTOR_CONTROL::IsSACLPresent(void)const  __ptr64
?IsSACLPresent@OS_SECURITY_DESCRIPTOR_CONTROL@@QEBAHXZ
; public: int __cdecl LOCATION::IsServer(void)const  __ptr64
?IsServer@LOCATION@@QEBAHXZ
; public: int __cdecl USER_11::IsServerOperator(void)const  __ptr64
?IsServerOperator@USER_11@@QEBAHXZ
; public: int __cdecl NET_NAME::IsSharable(long * __ptr64) __ptr64
?IsSharable@NET_NAME@@QEAAHPEAJ@Z
; public: int __cdecl LM_SERVICE::IsStarted(long * __ptr64) __ptr64
?IsStarted@LM_SERVICE@@QEAAHPEAJ@Z
; public: int __cdecl LM_SERVICE::IsStarting(long * __ptr64) __ptr64
?IsStarting@LM_SERVICE@@QEAAHPEAJ@Z
; public: int __cdecl LM_SERVICE::IsStopped(long * __ptr64) __ptr64
?IsStopped@LM_SERVICE@@QEAAHPEAJ@Z
; public: int __cdecl LM_SERVICE::IsStopping(long * __ptr64) __ptr64
?IsStopping@LM_SERVICE@@QEAAHPEAJ@Z
; protected: int __cdecl LM_OBJ::IsUnconstructed(void)const  __ptr64
?IsUnconstructed@LM_OBJ@@IEBAHXZ
; private: int __cdecl LM_OBJ_BASE::IsUnconstructed(void)const  __ptr64
?IsUnconstructed@LM_OBJ_BASE@@AEBAHXZ
; protected: int __cdecl LM_OBJ::IsValid(void)const  __ptr64
?IsValid@LM_OBJ@@IEBAHXZ
; private: int __cdecl LM_OBJ_BASE::IsValid(void)const  __ptr64
?IsValid@LM_OBJ_BASE@@AEBAHXZ
; public: int __cdecl OS_ACL::IsValid(void)const  __ptr64
?IsValid@OS_ACL@@QEBAHXZ
; public: int __cdecl OS_SECURITY_DESCRIPTOR::IsValid(void)const  __ptr64
?IsValid@OS_SECURITY_DESCRIPTOR@@QEBAHXZ
; public: int __cdecl OS_SID::IsValid(void)const  __ptr64
?IsValid@OS_SID@@QEBAHXZ
; public: static int __cdecl DOMAIN::IsValidDC(unsigned short const * __ptr64,unsigned short const * __ptr64)
?IsValidDC@DOMAIN@@SAHPEBG0@Z
; public: int __cdecl LM_OBJ_BASE::IsValidationOn(void) __ptr64
?IsValidationOn@LM_OBJ_BASE@@QEAAHXZ
; int __cdecl IsWhiteSpace(unsigned short)
?IsWhiteSpace@@YAHG@Z
; public: long __cdecl LSA_POLICY::JoinDomain(class NLS_STR const & __ptr64,class NLS_STR const & __ptr64,int,class NLS_STR const * __ptr64,unsigned short const * __ptr64) __ptr64
?JoinDomain@LSA_POLICY@@QEAAJAEBVNLS_STR@@0HPEBV2@PEBG@Z
; int __cdecl LMOTypeToNetType(enum LMO_DEVICE)
?LMOTypeToNetType@@YAHW4LMO_DEVICE@@@Z
; private: static void __cdecl DOMAIN_WITH_DC_CACHE::LeaveCriticalSection(void)
?LeaveCriticalSection@DOMAIN_WITH_DC_CACHE@@CAXXZ
; public: long __cdecl LSA_POLICY::LeaveDomain(void) __ptr64
?LeaveDomain@LSA_POLICY@@QEAAJXZ
; public: long __cdecl SC_MANAGER::Lock(void) __ptr64
?Lock@SC_MANAGER@@QEAAJXZ
; long __cdecl LsaxGetComputerName(class NLS_STR * __ptr64)
?LsaxGetComputerName@@YAJPEAVNLS_STR@@@Z
; protected: void __cdecl LM_OBJ::MakeConstructed(void) __ptr64
?MakeConstructed@LM_OBJ@@IEAAXXZ
; private: void __cdecl LM_OBJ_BASE::MakeConstructed(void) __ptr64
?MakeConstructed@LM_OBJ_BASE@@AEAAXXZ
; protected: void __cdecl LM_OBJ::MakeInvalid(void) __ptr64
?MakeInvalid@LM_OBJ@@IEAAXXZ
; private: void __cdecl LM_OBJ_BASE::MakeInvalid(void) __ptr64
?MakeInvalid@LM_OBJ_BASE@@AEAAXXZ
; private: void __cdecl NEW_LM_OBJ::MakeNew(void) __ptr64
?MakeNew@NEW_LM_OBJ@@AEAAXXZ
; unsigned long __cdecl MakeNullNull(unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64)
?MakeNullNull@@YAKPEBGPEAPEAG@Z
; private: static long __cdecl LSA_POLICY::MakeSecretName(class NLS_STR const & __ptr64,int,class NLS_STR * __ptr64)
?MakeSecretName@LSA_POLICY@@CAJAEBVNLS_STR@@HPEAV2@@Z
; protected: void __cdecl LM_OBJ::MakeUnconstructed(void) __ptr64
?MakeUnconstructed@LM_OBJ@@IEAAXXZ
; private: void __cdecl LM_OBJ_BASE::MakeUnconstructed(void) __ptr64
?MakeUnconstructed@LM_OBJ_BASE@@AEAAXXZ
; protected: void __cdecl LM_OBJ::MakeValid(void) __ptr64
?MakeValid@LM_OBJ@@IEAAXXZ
; private: void __cdecl LM_OBJ_BASE::MakeValid(void) __ptr64
?MakeValid@LM_OBJ_BASE@@AEAAXXZ
; private: void __cdecl TRIPLE_SERVER_ENUM::MapBrowserToTriple(struct _SERVER_INFO_101 const * __ptr64,struct _TRIPLE_SERVER_INFO * __ptr64) __ptr64
?MapBrowserToTriple@TRIPLE_SERVER_ENUM@@AEAAXPEBU_SERVER_INFO_101@@PEAU_TRIPLE_SERVER_INFO@@@Z
; unsigned long __cdecl MapComm(unsigned short const * __ptr64)
?MapComm@@YAKPEBG@Z
; unsigned long __cdecl MapDrive(unsigned short const * __ptr64)
?MapDrive@@YAKPEBG@Z
; public: int __cdecl OS_ACL_SUBJECT_ITER::MapGenericAllOnly(void)const  __ptr64
?MapGenericAllOnly@OS_ACL_SUBJECT_ITER@@QEBAHXZ
; private: void __cdecl TRIPLE_SERVER_ENUM::MapKnownToTriple(struct _KNOWN_SERVER_INFO const * __ptr64,struct _TRIPLE_SERVER_INFO * __ptr64) __ptr64
?MapKnownToTriple@TRIPLE_SERVER_ENUM@@AEAAXPEBU_KNOWN_SERVER_INFO@@PEAU_TRIPLE_SERVER_INFO@@@Z
; unsigned long __cdecl MapLPT(unsigned short const * __ptr64)
?MapLPT@@YAKPEBG@Z
; private: void __cdecl SERVICE_ENUM::MapLmStatusToNtState(unsigned long,unsigned long * __ptr64,unsigned long * __ptr64) __ptr64
?MapLmStatusToNtState@SERVICE_ENUM@@AEAAXKPEAK0@Z
; private: void __cdecl TRIPLE_SERVER_ENUM::MapLmToKnown(struct _USER_INFO_0 const * __ptr64,struct _KNOWN_SERVER_INFO * __ptr64) __ptr64
?MapLmToKnown@TRIPLE_SERVER_ENUM@@AEAAXPEBU_USER_INFO_0@@PEAU_KNOWN_SERVER_INFO@@@Z
; private: void __cdecl TRIPLE_SERVER_ENUM::MapNtToKnown(struct _DOMAIN_DISPLAY_MACHINE const * __ptr64,struct _KNOWN_SERVER_INFO * __ptr64) __ptr64
?MapNtToKnown@TRIPLE_SERVER_ENUM@@AEAAXPEBU_DOMAIN_DISPLAY_MACHINE@@PEAU_KNOWN_SERVER_INFO@@@Z
; public: long __cdecl OS_ACL_SUBJECT_ITER::MapSpecificToGeneric(unsigned long * __ptr64,int) __ptr64
?MapSpecificToGeneric@OS_ACL_SUBJECT_ITER@@QEAAJPEAKH@Z
; private: enum _SERVER_ROLE  __cdecl TRIPLE_SERVER_ENUM::MapTypeMaskToRole(unsigned long)const  __ptr64
?MapTypeMaskToRole@TRIPLE_SERVER_ENUM@@AEBA?AW4_SERVER_ROLE@@K@Z
; private: enum _SERVER_TYPE  __cdecl TRIPLE_SERVER_ENUM::MapTypeMaskToType(unsigned long)const  __ptr64
?MapTypeMaskToType@TRIPLE_SERVER_ENUM@@AEBA?AW4_SERVER_TYPE@@K@Z
; enum LMO_DEVICE  __cdecl NetTypeToLMOType(unsigned long)
?NetTypeToLMOType@@YA?AW4LMO_DEVICE@@K@Z
; public: class ALIAS_ENUM_OBJ const * __ptr64 __cdecl ALIAS_ENUM_ITER::Next(long * __ptr64,int) __ptr64
?Next@ALIAS_ENUM_ITER@@QEAAPEBVALIAS_ENUM_OBJ@@PEAJH@Z
; public: class BROWSE_DOMAIN_INFO const * __ptr64 __cdecl BROWSE_DOMAIN_ENUM::Next(void) __ptr64
?Next@BROWSE_DOMAIN_ENUM@@QEAAPEBVBROWSE_DOMAIN_INFO@@XZ
; public: class FILE2_ENUM_OBJ const * __ptr64 __cdecl FILE2_ENUM_ITER::Next(long * __ptr64,int) __ptr64
?Next@FILE2_ENUM_ITER@@QEAAPEBVFILE2_ENUM_OBJ@@PEAJH@Z
; public: class FILE3_ENUM_OBJ const * __ptr64 __cdecl FILE3_ENUM_ITER::Next(long * __ptr64,int) __ptr64
?Next@FILE3_ENUM_ITER@@QEAAPEBVFILE3_ENUM_OBJ@@PEAJH@Z
; public: unsigned short const * __ptr64 __cdecl ITER_DEVICE::Next(void) __ptr64
?Next@ITER_DEVICE@@QEAAPEBGXZ
; public: class BROWSE_DOMAIN_INFO * __ptr64 __cdecl ITER_SL_BROWSE_DOMAIN_INFO::Next(void) __ptr64
?Next@ITER_SL_BROWSE_DOMAIN_INFO@@QEAAPEAVBROWSE_DOMAIN_INFO@@XZ
; public: class LM_RESUME_BUFFER * __ptr64 __cdecl ITER_SL_LM_RESUME_BUFFER::Next(void) __ptr64
?Next@ITER_SL_LM_RESUME_BUFFER@@QEAAPEAVLM_RESUME_BUFFER@@XZ
; public: class NLS_STR * __ptr64 __cdecl ITER_SL_NLS_STR::Next(void) __ptr64
?Next@ITER_SL_NLS_STR@@QEAAPEAVNLS_STR@@XZ
; public: class LSA_ACCOUNTS_ENUM_OBJ const * __ptr64 __cdecl LSA_ACCOUNTS_ENUM_ITER::Next(long * __ptr64,int) __ptr64
?Next@LSA_ACCOUNTS_ENUM_ITER@@QEAAPEBVLSA_ACCOUNTS_ENUM_OBJ@@PEAJH@Z
; public: class LSA_PRIVILEGES_ENUM_OBJ const * __ptr64 __cdecl LSA_PRIVILEGES_ENUM_ITER::Next(long * __ptr64,int) __ptr64
?Next@LSA_PRIVILEGES_ENUM_ITER@@QEAAPEBVLSA_PRIVILEGES_ENUM_OBJ@@PEAJH@Z
; public: class NT_GROUP_ENUM_OBJ const * __ptr64 __cdecl NT_GROUP_ENUM_ITER::Next(long * __ptr64,int) __ptr64
?Next@NT_GROUP_ENUM_ITER@@QEAAPEBVNT_GROUP_ENUM_OBJ@@PEAJH@Z
; public: class NT_MACHINE_ENUM_OBJ const * __ptr64 __cdecl NT_MACHINE_ENUM_ITER::Next(long * __ptr64,int) __ptr64
?Next@NT_MACHINE_ENUM_ITER@@QEAAPEBVNT_MACHINE_ENUM_OBJ@@PEAJH@Z
; public: class NT_USER_ENUM_OBJ const * __ptr64 __cdecl NT_USER_ENUM_ITER::Next(long * __ptr64,int) __ptr64
?Next@NT_USER_ENUM_ITER@@QEAAPEBVNT_USER_ENUM_OBJ@@PEAJH@Z
; public: virtual int __cdecl OS_DACL_SUBJECT_ITER::Next(long * __ptr64) __ptr64
?Next@OS_DACL_SUBJECT_ITER@@UEAAHPEAJ@Z
; public: virtual int __cdecl OS_SACL_SUBJECT_ITER::Next(long * __ptr64) __ptr64
?Next@OS_SACL_SUBJECT_ITER@@UEAAHPEAJ@Z
; public: class SAM_USER_ENUM_OBJ const * __ptr64 __cdecl SAM_USER_ENUM_ITER::Next(long * __ptr64,int) __ptr64
?Next@SAM_USER_ENUM_ITER@@QEAAPEBVSAM_USER_ENUM_OBJ@@PEAJH@Z
; public: class TRUSTED_DOMAIN_ENUM_OBJ const * __ptr64 __cdecl TRUSTED_DOMAIN_ENUM_ITER::Next(long * __ptr64,int) __ptr64
?Next@TRUSTED_DOMAIN_ENUM_ITER@@QEAAPEBVTRUSTED_DOMAIN_ENUM_OBJ@@PEAJH@Z
; public: class USER0_ENUM_OBJ const * __ptr64 __cdecl USER0_ENUM_ITER::Next(long * __ptr64,int) __ptr64
?Next@USER0_ENUM_ITER@@QEAAPEBVUSER0_ENUM_OBJ@@PEAJH@Z
; public: class USER10_ENUM_OBJ const * __ptr64 __cdecl USER10_ENUM_ITER::Next(long * __ptr64,int) __ptr64
?Next@USER10_ENUM_ITER@@QEAAPEBVUSER10_ENUM_OBJ@@PEAJH@Z
; public: class USER1_ENUM_OBJ const * __ptr64 __cdecl USER1_ENUM_ITER::Next(long * __ptr64,int) __ptr64
?Next@USER1_ENUM_ITER@@QEAAPEBVUSER1_ENUM_OBJ@@PEAJH@Z
; public: class USER2_ENUM_OBJ const * __ptr64 __cdecl USER2_ENUM_ITER::Next(long * __ptr64,int) __ptr64
?Next@USER2_ENUM_ITER@@QEAAPEBVUSER2_ENUM_OBJ@@PEAJH@Z
; protected: long __cdecl LM_RESUME_ENUM_ITER::NextGetInfo(void) __ptr64
?NextGetInfo@LM_RESUME_ENUM_ITER@@IEAAJXZ
; protected: void __cdecl LM_RESUME_ENUM::NukeBuffers(void) __ptr64
?NukeBuffers@LM_RESUME_ENUM@@IEAAXXZ
; public: static long __cdecl LM_SRVRES::NukeUsersSession(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64)
?NukeUsersSession@LM_SRVRES@@SAJPEBG00@Z
; public: long __cdecl LSA_POLICY::Open(unsigned short const * __ptr64,unsigned long) __ptr64
?Open@LSA_POLICY@@QEAAJPEBGK@Z
; public: long __cdecl LSA_SECRET::Open(class LSA_POLICY const & __ptr64,unsigned long) __ptr64
?Open@LSA_SECRET@@QEAAJAEBVLSA_POLICY@@K@Z
; private: long __cdecl SAM_DOMAIN::OpenDomain(class SAM_SERVER const & __ptr64,void * __ptr64,unsigned long) __ptr64
?OpenDomain@SAM_DOMAIN@@AEAAJAEBVSAM_SERVER@@PEAXK@Z
; public: long __cdecl LM_SERVICE::Pause(unsigned int,unsigned int) __ptr64
?Pause@LM_SERVICE@@QEAAJII@Z
; public: long __cdecl LM_SERVICE::Poll(int * __ptr64) __ptr64
?Poll@LM_SERVICE@@QEAAJPEAH@Z
; protected: void __cdecl LSA_ACCOUNT::PrintInfo(unsigned short const * __ptr64) __ptr64
?PrintInfo@LSA_ACCOUNT@@IEAAXPEBG@Z
; public: struct _ACCESS_LIST * __ptr64 __cdecl NET_ACCESS_1::QueryACE(unsigned int)const  __ptr64
?QueryACE@NET_ACCESS_1@@QEBAPEAU_ACCESS_LIST@@I@Z
; public: void * __ptr64 __cdecl OS_ACE::QueryACE(void)const  __ptr64
?QueryACE@OS_ACE@@QEBAPEAXXZ
; public: long __cdecl OS_ACL::QueryACE(unsigned long,class OS_ACE * __ptr64)const  __ptr64
?QueryACE@OS_ACL@@QEBAJKPEAVOS_ACE@@@Z
; public: unsigned int __cdecl NET_ACCESS_1::QueryACECount(void)const  __ptr64
?QueryACECount@NET_ACCESS_1@@QEBAIXZ
; public: long __cdecl OS_ACL::QueryACECount(unsigned long * __ptr64)const  __ptr64
?QueryACECount@OS_ACL@@QEBAJPEAK@Z
; protected: class OS_ACL const * __ptr64 __cdecl OS_ACL_SUBJECT_ITER::QueryACL(void)const  __ptr64
?QueryACL@OS_ACL_SUBJECT_ITER@@IEBAPEBVOS_ACL@@XZ
; public: unsigned long __cdecl ADMIN_AUTHORITY::QueryAccessAccountDomain(void)const  __ptr64
?QueryAccessAccountDomain@ADMIN_AUTHORITY@@QEBAKXZ
; public: unsigned long __cdecl ADMIN_AUTHORITY::QueryAccessBuiltinDomain(void)const  __ptr64
?QueryAccessBuiltinDomain@ADMIN_AUTHORITY@@QEBAKXZ
; public: unsigned long __cdecl ADMIN_AUTHORITY::QueryAccessLSAPolicy(void)const  __ptr64
?QueryAccessLSAPolicy@ADMIN_AUTHORITY@@QEBAKXZ
; public: unsigned long __cdecl OS_ACE::QueryAccessMask(void)const  __ptr64
?QueryAccessMask@OS_ACE@@QEBAKXZ
; public: unsigned long __cdecl OS_DACL_SUBJECT_ITER::QueryAccessMask(void)const  __ptr64
?QueryAccessMask@OS_DACL_SUBJECT_ITER@@QEBAKXZ
; public: unsigned long __cdecl ADMIN_AUTHORITY::QueryAccessSamServer(void)const  __ptr64
?QueryAccessSamServer@ADMIN_AUTHORITY@@QEBAKXZ
; public: unsigned int __cdecl NT_MACHINE_ENUM_OBJ::QueryAccountCtrl(void)const  __ptr64
?QueryAccountCtrl@NT_MACHINE_ENUM_OBJ@@QEBAIXZ
; public: int __cdecl USER_2::QueryAccountDisabled(void)const  __ptr64
?QueryAccountDisabled@USER_2@@QEBAHXZ
; public: class SAM_DOMAIN * __ptr64 __cdecl ADMIN_AUTHORITY::QueryAccountDomain(void)const  __ptr64
?QueryAccountDomain@ADMIN_AUTHORITY@@QEBAPEAVSAM_DOMAIN@@XZ
; public: long __cdecl USER_2::QueryAccountExpires(void)const  __ptr64
?QueryAccountExpires@USER_2@@QEBAJXZ
; public: enum _ACCOUNT_TYPE  __cdecl USER_3::QueryAccountType(void)const  __ptr64
?QueryAccountType@USER_3@@QEBA?AW4_ACCOUNT_TYPE@@XZ
; public: unsigned char __cdecl OS_ACE::QueryAceFlags(void)const  __ptr64
?QueryAceFlags@OS_ACE@@QEBAEXZ
; public: struct _ACL * __ptr64 __cdecl OS_ACL::QueryAcl(void)const  __ptr64
?QueryAcl@OS_ACL@@QEBAPEAU_ACL@@XZ
; protected: unsigned int __cdecl OS_OBJECT_WITH_DATA::QueryAllocSize(void)const  __ptr64
?QueryAllocSize@OS_OBJECT_WITH_DATA@@IEBAIXZ
; public: unsigned short const * __ptr64 __cdecl DOMAIN::QueryAnyDC(void)const  __ptr64
?QueryAnyDC@DOMAIN@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl MEMBERSHIP_LM_OBJ::QueryAssocName(unsigned int)const  __ptr64
?QueryAssocName@MEMBERSHIP_LM_OBJ@@QEBAPEBGI@Z
; public: unsigned long __cdecl OS_SACL_SUBJECT_ITER::QueryAuditAccessMask_F(void)const  __ptr64
?QueryAuditAccessMask_F@OS_SACL_SUBJECT_ITER@@QEBAKXZ
; public: unsigned long __cdecl OS_SACL_SUBJECT_ITER::QueryAuditAccessMask_S(void)const  __ptr64
?QueryAuditAccessMask_S@OS_SACL_SUBJECT_ITER@@QEBAKXZ
; public: virtual unsigned long __cdecl LOCAL_USER::QueryAuthFlags(void)const  __ptr64
?QueryAuthFlags@LOCAL_USER@@UEBAKXZ
; public: virtual unsigned long __cdecl USER_11::QueryAuthFlags(void)const  __ptr64
?QueryAuthFlags@USER_11@@UEBAKXZ
; protected: unsigned char * __ptr64 __cdecl LM_ENUM_ITER::QueryBasePtr(void)const  __ptr64
?QueryBasePtr@LM_ENUM_ITER@@IEBAPEAEXZ
; protected: unsigned char const * __ptr64 __cdecl LM_RESUME_ENUM_ITER::QueryBasePtr(void)const  __ptr64
?QueryBasePtr@LM_RESUME_ENUM_ITER@@IEBAPEBEXZ
; protected: unsigned char * __ptr64 __cdecl DEVICE::QueryBufPtr(void) __ptr64
?QueryBufPtr@DEVICE@@IEAAPEAEXZ
; protected: void * __ptr64 __cdecl NT_MEMORY::QueryBuffer(void)const  __ptr64
?QueryBuffer@NT_MEMORY@@IEBAPEAXXZ
; public: class BUFFER const & __ptr64 __cdecl SERVICE_CONTROL::QueryBuffer(void)const  __ptr64
?QueryBuffer@SERVICE_CONTROL@@QEBAAEBVBUFFER@@XZ
; public: struct _SAM_RID_ENUMERATION const * __ptr64 __cdecl ALIAS_ENUM_OBJ::QueryBufferPtr(void)const  __ptr64
?QueryBufferPtr@ALIAS_ENUM_OBJ@@QEBAPEBU_SAM_RID_ENUMERATION@@XZ
; public: struct _SERVER_INFO_100 const * __ptr64 __cdecl DOMAIN0_ENUM_OBJ::QueryBufferPtr(void)const  __ptr64
?QueryBufferPtr@DOMAIN0_ENUM_OBJ@@QEBAPEBU_SERVER_INFO_100@@XZ
; protected: unsigned char const * __ptr64 __cdecl ENUM_OBJ_BASE::QueryBufferPtr(void)const  __ptr64
?QueryBufferPtr@ENUM_OBJ_BASE@@IEBAPEBEXZ
; public: struct _FILE_INFO_3 const * __ptr64 __cdecl FILE3_ENUM_OBJ::QueryBufferPtr(void)const  __ptr64
?QueryBufferPtr@FILE3_ENUM_OBJ@@QEBAPEBU_FILE_INFO_3@@XZ
; public: struct _GROUP_INFO_0 const * __ptr64 __cdecl GROUP0_ENUM_OBJ::QueryBufferPtr(void)const  __ptr64
?QueryBufferPtr@GROUP0_ENUM_OBJ@@QEBAPEBU_GROUP_INFO_0@@XZ
; public: unsigned char const * __ptr64 __cdecl LM_RESUME_BUFFER::QueryBufferPtr(void)const  __ptr64
?QueryBufferPtr@LM_RESUME_BUFFER@@QEBAPEBEXZ
; public: struct _POLICY_PRIVILEGE_DEFINITION const * __ptr64 __cdecl LSA_PRIVILEGES_ENUM_OBJ::QueryBufferPtr(void)const  __ptr64
?QueryBufferPtr@LSA_PRIVILEGES_ENUM_OBJ@@QEBAPEBU_POLICY_PRIVILEGE_DEFINITION@@XZ
; protected: unsigned char * __ptr64 __cdecl NEW_LM_OBJ::QueryBufferPtr(void)const  __ptr64
?QueryBufferPtr@NEW_LM_OBJ@@IEBAPEAEXZ
; public: struct _DOMAIN_DISPLAY_MACHINE const * __ptr64 __cdecl NT_MACHINE_ENUM_OBJ::QueryBufferPtr(void)const  __ptr64
?QueryBufferPtr@NT_MACHINE_ENUM_OBJ@@QEBAPEBU_DOMAIN_DISPLAY_MACHINE@@XZ
; public: struct _SAM_RID_ENUMERATION const * __ptr64 __cdecl SAM_USER_ENUM_OBJ::QueryBufferPtr(void)const  __ptr64
?QueryBufferPtr@SAM_USER_ENUM_OBJ@@QEBAPEBU_SAM_RID_ENUMERATION@@XZ
; public: struct _SERVER_INFO_101 const * __ptr64 __cdecl SERVER1_ENUM_OBJ::QueryBufferPtr(void)const  __ptr64
?QueryBufferPtr@SERVER1_ENUM_OBJ@@QEBAPEBU_SERVER_INFO_101@@XZ
; public: struct _USER_INFO_0 const * __ptr64 __cdecl USER0_ENUM_OBJ::QueryBufferPtr(void)const  __ptr64
?QueryBufferPtr@USER0_ENUM_OBJ@@QEBAPEBU_USER_INFO_0@@XZ
; protected: unsigned int __cdecl NEW_LM_OBJ::QueryBufferSize(void)const  __ptr64
?QueryBufferSize@NEW_LM_OBJ@@IEBAIXZ
; public: class SAM_DOMAIN * __ptr64 __cdecl ADMIN_AUTHORITY::QueryBuiltinDomain(void)const  __ptr64
?QueryBuiltinDomain@ADMIN_AUTHORITY@@QEBAPEAVSAM_DOMAIN@@XZ
; public: long __cdecl OS_ACL::QueryBytesInUse(unsigned long * __ptr64)const  __ptr64
?QueryBytesInUse@OS_ACL@@QEBAJPEAK@Z
; public: unsigned short const * __ptr64 __cdecl LM_SESSION_2::QueryClientType(void)const  __ptr64
?QueryClientType@LM_SESSION_2@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl GROUP_1::QueryComment(void)const  __ptr64
?QueryComment@GROUP_1@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl SERVER1_ENUM_OBJ::QueryComment(void)const  __ptr64
?QueryComment@SERVER1_ENUM_OBJ@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl SERVER_1::QueryComment(void)const  __ptr64
?QueryComment@SERVER_1@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl SHARE_1::QueryComment(void)const  __ptr64
?QueryComment@SHARE_1@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl USER_11::QueryComment(void)const  __ptr64
?QueryComment@USER_11@@QEBAPEBGXZ
; public: long __cdecl NET_NAME::QueryComputerName(class NLS_STR * __ptr64) __ptr64
?QueryComputerName@NET_NAME@@QEAAJPEAVNLS_STR@@@Z
; public: long __cdecl SC_SERVICE::QueryConfig(struct _QUERY_SERVICE_CONFIGW * __ptr64 * __ptr64) __ptr64
?QueryConfig@SC_SERVICE@@QEAAJPEAPEAU_QUERY_SERVICE_CONFIGW@@@Z
; public: class OS_SECURITY_DESCRIPTOR_CONTROL const * __ptr64 __cdecl OS_SECURITY_DESCRIPTOR::QueryControl(void)const  __ptr64
?QueryControl@OS_SECURITY_DESCRIPTOR@@QEBAPEBVOS_SECURITY_DESCRIPTOR_CONTROL@@XZ
; public: struct _TRUSTED_CONTROLLERS_INFO const & __ptr64 __cdecl LSA_TRUSTED_DC_LIST::QueryControllerList(void)const  __ptr64
?QueryControllerList@LSA_TRUSTED_DC_LIST@@QEBAAEBU_TRUSTED_CONTROLLERS_INFO@@XZ
; public: long __cdecl LSA_TRUSTED_DOMAIN::QueryControllerList(class LSA_REF_DOMAIN_MEM * __ptr64)const  __ptr64
?QueryControllerList@LSA_TRUSTED_DOMAIN@@QEBAJPEAVLSA_REF_DOMAIN_MEM@@@Z
; public: unsigned int __cdecl ENUM_CALLER::QueryCount(void)const  __ptr64
?QueryCount@ENUM_CALLER@@QEBAIXZ
; protected: unsigned int __cdecl LM_ENUM_ITER::QueryCount(void)const  __ptr64
?QueryCount@LM_ENUM_ITER@@IEBAIXZ
; protected: unsigned int __cdecl LM_RESUME_ENUM_ITER::QueryCount(void)const  __ptr64
?QueryCount@LM_RESUME_ENUM_ITER@@IEBAIXZ
; public: int __cdecl LSA_TRUSTED_DC_LIST::QueryCount(void) __ptr64
?QueryCount@LSA_TRUSTED_DC_LIST@@QEAAHXZ
; public: unsigned long __cdecl NT_MEMORY::QueryCount(void)const  __ptr64
?QueryCount@NT_MEMORY@@QEBAKXZ
; protected: static long __cdecl NT_ACCOUNT_ENUM::QueryCountPreferences2(unsigned long * __ptr64,unsigned long * __ptr64,unsigned int,unsigned long,unsigned long,unsigned long)
?QueryCountPreferences2@NT_ACCOUNT_ENUM@@KAJPEAK0IKKK@Z
; protected: virtual long __cdecl NT_ACCOUNT_ENUM::QueryCountPreferences(unsigned long * __ptr64,unsigned long * __ptr64,unsigned int,unsigned long,unsigned long,unsigned long) __ptr64
?QueryCountPreferences@NT_ACCOUNT_ENUM@@MEAAJPEAK0IKKK@Z
; protected: unsigned long __cdecl OS_ACL_SUBJECT_ITER::QueryCurrentACE(void)const  __ptr64
?QueryCurrentACE@OS_ACL_SUBJECT_ITER@@IEBAKXZ
; public: long __cdecl LSA_POLICY::QueryCurrentUser(class NLS_STR * __ptr64)const  __ptr64
?QueryCurrentUser@LSA_POLICY@@QEBAJPEAVNLS_STR@@@Z
; public: unsigned int __cdecl SHARE_2::QueryCurrentUses(void)const  __ptr64
?QueryCurrentUses@SHARE_2@@QEBAIXZ
; public: long __cdecl OS_SECURITY_DESCRIPTOR::QueryDACL(int * __ptr64,class OS_ACL * __ptr64 * __ptr64,int * __ptr64)const  __ptr64
?QueryDACL@OS_SECURITY_DESCRIPTOR@@QEBAJPEAHPEAPEAVOS_ACL@@0@Z
; public: long __cdecl LSA_DOMAIN_INFO::QueryDcName(class NLS_STR * __ptr64) __ptr64
?QueryDcName@LSA_DOMAIN_INFO@@QEAAJPEAVNLS_STR@@@Z
; protected: enum LMO_DEVICE  __cdecl DEVICE::QueryDevType(void)const  __ptr64
?QueryDevType@DEVICE@@IEBA?AW4LMO_DEVICE@@XZ
; public: long __cdecl LOCATION::QueryDisplayName(class NLS_STR * __ptr64)const  __ptr64
?QueryDisplayName@LOCATION@@QEBAJPEAVNLS_STR@@@Z
; public: long __cdecl LSA_PRIVILEGES_ENUM_OBJ::QueryDisplayName(class NLS_STR * __ptr64,class LSA_POLICY const * __ptr64)const  __ptr64
?QueryDisplayName@LSA_PRIVILEGES_ENUM_OBJ@@QEBAJPEAVNLS_STR@@PEBVLSA_POLICY@@@Z
; public: unsigned short const * __ptr64 __cdecl LOCATION::QueryDomain(void)const  __ptr64
?QueryDomain@LOCATION@@QEBAPEBGXZ
; public: long __cdecl LSA_TRANSLATED_NAME_MEM::QueryDomainIndex(unsigned long)const  __ptr64
?QueryDomainIndex@LSA_TRANSLATED_NAME_MEM@@QEBAJK@Z
; public: unsigned short const * __ptr64 __cdecl BROWSE_DOMAIN_INFO::QueryDomainName(void)const  __ptr64
?QueryDomainName@BROWSE_DOMAIN_INFO@@QEBAPEBGXZ
; public: unsigned long __cdecl BROWSE_DOMAIN_INFO::QueryDomainSources(void)const  __ptr64
?QueryDomainSources@BROWSE_DOMAIN_INFO@@QEBAKXZ
; public: long __cdecl NET_NAME::QueryDrive(class NLS_STR * __ptr64) __ptr64
?QueryDrive@NET_NAME@@QEAAJPEAVNLS_STR@@@Z
; public: unsigned long __cdecl USER_MODALS_3::QueryDuration(void)const  __ptr64
?QueryDuration@USER_MODALS_3@@QEBAKXZ
; public: long __cdecl BASE::QueryError(void)const  __ptr64
?QueryError@BASE@@QEBAJXZ
; public: long __cdecl LM_SERVICE::QueryExitCode(void)const  __ptr64
?QueryExitCode@LM_SERVICE@@QEBAJXZ
; public: long __cdecl NET_ACCESS_1::QueryFailingName(class NLS_STR * __ptr64,enum PERMNAME_TYPE * __ptr64)const  __ptr64
?QueryFailingName@NET_ACCESS_1@@QEBAJPEAVNLS_STR@@PEAW4PERMNAME_TYPE@@@Z
; public: int __cdecl LSA_TRANSLATED_SID_MEM::QueryFailingNameIndex(unsigned long * __ptr64) __ptr64
?QueryFailingNameIndex@LSA_TRANSLATED_SID_MEM@@QEAAHPEAK@Z
; public: unsigned long __cdecl LM_FILE::QueryFileId(void)const  __ptr64
?QueryFileId@LM_FILE@@QEBAKXZ
; public: unsigned long __cdecl USER_MODALS::QueryForceLogoff(void)const  __ptr64
?QueryForceLogoff@USER_MODALS@@QEBAKXZ
; public: unsigned short const * __ptr64 __cdecl USER_11::QueryFullName(void)const  __ptr64
?QueryFullName@USER_11@@QEBAPEBGXZ
; public: long __cdecl LM_SERVICE::QueryFullStatus(enum LM_SERVICE_STATUS * __ptr64,struct LM_SERVICE_OTHER_STATUS * __ptr64) __ptr64
?QueryFullStatus@LM_SERVICE@@QEAAJPEAW4LM_SERVICE_STATUS@@PEAULM_SERVICE_OTHER_STATUS@@@Z
; public: long __cdecl OS_SECURITY_DESCRIPTOR::QueryGroup(int * __ptr64,class OS_SID * __ptr64 * __ptr64,int * __ptr64)const  __ptr64
?QueryGroup@OS_SECURITY_DESCRIPTOR@@QEBAJPEAHPEAPEAVOS_SID@@0@Z
; public: void * __ptr64 __cdecl LSA_OBJECT::QueryHandle(void)const  __ptr64
?QueryHandle@LSA_OBJECT@@QEBAPEAXXZ
; public: void * __ptr64 __cdecl SAM_OBJECT::QueryHandle(void)const  __ptr64
?QueryHandle@SAM_OBJECT@@QEBAPEAXXZ
; public: struct SC_HANDLE__ * __ptr64 __cdecl SERVICE_CONTROL::QueryHandle(void)const  __ptr64
?QueryHandle@SERVICE_CONTROL@@QEBAPEAUSC_HANDLE__@@XZ
; public: unsigned short const * __ptr64 __cdecl USER_11::QueryHomeDir(void)const  __ptr64
?QueryHomeDir@USER_11@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl USER_3::QueryHomedirDrive(void)const  __ptr64
?QueryHomedirDrive@USER_3@@QEBAPEBGXZ
; public: unsigned char * __ptr64 __cdecl LOGON_HOURS_SETTING::QueryHoursBlock(void)const  __ptr64
?QueryHoursBlock@LOGON_HOURS_SETTING@@QEBAPEAEXZ
; public: unsigned long __cdecl LM_SESSION_10::QueryIdleTime(void)const  __ptr64
?QueryIdleTime@LM_SESSION_10@@QEBAKXZ
; public: long __cdecl LSA_SECRET::QueryInfo(class NLS_STR * __ptr64,class NLS_STR * __ptr64,union _LARGE_INTEGER * __ptr64,union _LARGE_INTEGER * __ptr64)const  __ptr64
?QueryInfo@LSA_SECRET@@QEBAJPEAVNLS_STR@@0PEAT_LARGE_INTEGER@@1@Z
; private: long __cdecl LSA_TRUSTED_DC_LIST::QueryInfo(class NLS_STR const & __ptr64,unsigned short const * __ptr64) __ptr64
?QueryInfo@LSA_TRUSTED_DC_LIST@@AEAAJAEBVNLS_STR@@PEBG@Z
; public: unsigned int __cdecl LM_ENUM::QueryInfoLevel(void)const  __ptr64
?QueryInfoLevel@LM_ENUM@@QEBAIXZ
; public: unsigned int __cdecl LM_RESUME_ENUM::QueryInfoLevel(void)const  __ptr64
?QueryInfoLevel@LM_RESUME_ENUM@@QEBAIXZ
; public: unsigned long __cdecl OS_DACL_SUBJECT_ITER::QueryInheritOnlyAccessMask(void)const  __ptr64
?QueryInheritOnlyAccessMask@OS_DACL_SUBJECT_ITER@@QEBAKXZ
; public: unsigned long __cdecl OS_SACL_SUBJECT_ITER::QueryInheritOnlyAuditAccessMask_F(void)const  __ptr64
?QueryInheritOnlyAuditAccessMask_F@OS_SACL_SUBJECT_ITER@@QEBAKXZ
; public: unsigned long __cdecl OS_SACL_SUBJECT_ITER::QueryInheritOnlyAuditAccessMask_S(void)const  __ptr64
?QueryInheritOnlyAuditAccessMask_S@OS_SACL_SUBJECT_ITER@@QEBAKXZ
; public: unsigned int __cdecl LM_RESUME_BUFFER::QueryItemCount(void)const  __ptr64
?QueryItemCount@LM_RESUME_BUFFER@@QEBAIXZ
; protected: virtual unsigned int __cdecl MEMBERSHIP_LM_OBJ::QueryItemSize(void)const  __ptr64
?QueryItemSize@MEMBERSHIP_LM_OBJ@@MEBAIXZ
; public: unsigned short const * __ptr64 __cdecl WKSTA_1::QueryLMRoot(void)const  __ptr64
?QueryLMRoot@WKSTA_1@@QEBAPEBGXZ
; public: class LSA_POLICY * __ptr64 __cdecl ADMIN_AUTHORITY::QueryLSAPolicy(void)const  __ptr64
?QueryLSAPolicy@ADMIN_AUTHORITY@@QEBAPEAVLSA_POLICY@@XZ
; public: long __cdecl NET_NAME::QueryLastComponent(class NLS_STR * __ptr64) __ptr64
?QueryLastComponent@NET_NAME@@QEAAJPEAVNLS_STR@@@Z
; public: long __cdecl OS_SID::QueryLastSubAuthority(unsigned long * __ptr64 * __ptr64)const  __ptr64
?QueryLastSubAuthority@OS_SID@@QEBAJPEAPEAK@Z
; public: unsigned long __cdecl OS_SID::QueryLength(void)const  __ptr64
?QueryLength@OS_SID@@QEBAKXZ
; public: long __cdecl NET_NAME::QueryLocalDrive(class NLS_STR * __ptr64) __ptr64
?QueryLocalDrive@NET_NAME@@QEAAJPEAVNLS_STR@@@Z
; public: long __cdecl NET_NAME::QueryLocalPath(class NLS_STR * __ptr64) __ptr64
?QueryLocalPath@NET_NAME@@QEAAJPEAVNLS_STR@@@Z
; public: long __cdecl SC_MANAGER::QueryLockStatus(struct _QUERY_SERVICE_LOCK_STATUSW * __ptr64 * __ptr64) __ptr64
?QueryLockStatus@SC_MANAGER@@QEAAJPEAPEAU_QUERY_SERVICE_LOCK_STATUSW@@@Z
; public: int __cdecl USER_2::QueryLockout(void)const  __ptr64
?QueryLockout@USER_2@@QEBAHXZ
; public: unsigned short const * __ptr64 __cdecl WKSTA_10::QueryLogonDomain(void)const  __ptr64
?QueryLogonDomain@WKSTA_10@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl WKSTA_USER_1::QueryLogonDomain(void)const  __ptr64
?QueryLogonDomain@WKSTA_USER_1@@QEBAPEBGXZ
; public: class LOGON_HOURS_SETTING const & __ptr64 __cdecl USER_11::QueryLogonHours(void)const  __ptr64
?QueryLogonHours@USER_11@@QEBAAEBVLOGON_HOURS_SETTING@@XZ
; public: unsigned short const * __ptr64 __cdecl WKSTA_1::QueryLogonServer(void)const  __ptr64
?QueryLogonServer@WKSTA_1@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl WKSTA_USER_1::QueryLogonServer(void)const  __ptr64
?QueryLogonServer@WKSTA_USER_1@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl WKSTA_10::QueryLogonUser(void)const  __ptr64
?QueryLogonUser@WKSTA_10@@QEBAPEBGXZ
; public: struct _LUID  __cdecl OS_LUID::QueryLuid(void)const  __ptr64
?QueryLuid@OS_LUID@@QEBA?AU_LUID@@XZ
; public: unsigned int __cdecl SERVER1_ENUM_OBJ::QueryMajorVer(void)const  __ptr64
?QueryMajorVer@SERVER1_ENUM_OBJ@@QEBAIXZ
; public: unsigned int __cdecl SERVER_1::QueryMajorVer(void)const  __ptr64
?QueryMajorVer@SERVER_1@@QEBAIXZ
; public: unsigned int __cdecl WKSTA_10::QueryMajorVer(void)const  __ptr64
?QueryMajorVer@WKSTA_10@@QEBAIXZ
; public: unsigned long __cdecl USER_MODALS::QueryMaxPasswdAge(void)const  __ptr64
?QueryMaxPasswdAge@USER_MODALS@@QEBAKXZ
; public: unsigned int __cdecl SERVER_2::QueryMaxUsers(void)const  __ptr64
?QueryMaxUsers@SERVER_2@@QEBAIXZ
; public: unsigned int __cdecl SHARE_2::QueryMaxUses(void)const  __ptr64
?QueryMaxUses@SHARE_2@@QEBAIXZ
; public: unsigned long __cdecl USER_MODALS::QueryMinPasswdAge(void)const  __ptr64
?QueryMinPasswdAge@USER_MODALS@@QEBAKXZ
; public: unsigned int __cdecl USER_MODALS::QueryMinPasswdLen(void)const  __ptr64
?QueryMinPasswdLen@USER_MODALS@@QEBAIXZ
; public: unsigned int __cdecl SERVER1_ENUM_OBJ::QueryMinorVer(void)const  __ptr64
?QueryMinorVer@SERVER1_ENUM_OBJ@@QEBAIXZ
; public: unsigned int __cdecl SERVER_1::QueryMinorVer(void)const  __ptr64
?QueryMinorVer@SERVER_1@@QEBAIXZ
; public: unsigned int __cdecl WKSTA_10::QueryMinorVer(void)const  __ptr64
?QueryMinorVer@WKSTA_10@@QEBAIXZ
; public: long __cdecl LOCATION::QueryNOSVersion(unsigned int * __ptr64,unsigned int * __ptr64) __ptr64
?QueryNOSVersion@LOCATION@@QEAAJPEAI0@Z
; public: virtual unsigned short const * __ptr64 __cdecl COMPUTER::QueryName(void)const  __ptr64
?QueryName@COMPUTER@@UEBAPEBGXZ
; public: virtual unsigned short const * __ptr64 __cdecl DEVICE::QueryName(void)const  __ptr64
?QueryName@DEVICE@@UEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl DOMAIN0_ENUM_OBJ::QueryName(void)const  __ptr64
?QueryName@DOMAIN0_ENUM_OBJ@@QEBAPEBGXZ
; public: virtual unsigned short const * __ptr64 __cdecl DOMAIN::QueryName(void)const  __ptr64
?QueryName@DOMAIN@@UEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl GROUP0_ENUM_OBJ::QueryName(void)const  __ptr64
?QueryName@GROUP0_ENUM_OBJ@@QEBAPEBGXZ
; public: virtual unsigned short const * __ptr64 __cdecl GROUP::QueryName(void)const  __ptr64
?QueryName@GROUP@@UEBAPEBGXZ
; public: virtual unsigned short const * __ptr64 __cdecl GROUP_MEMB::QueryName(void)const  __ptr64
?QueryName@GROUP_MEMB@@UEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl LM_SERVICE::QueryName(void)const  __ptr64
?QueryName@LM_SERVICE@@QEBAPEBGXZ
; public: virtual unsigned short const * __ptr64 __cdecl LM_SESSION::QueryName(void)const  __ptr64
?QueryName@LM_SESSION@@UEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl LOCATION::QueryName(void)const  __ptr64
?QueryName@LOCATION@@QEBAPEBGXZ
; public: virtual unsigned short const * __ptr64 __cdecl LSA_ACCOUNT::QueryName(void)const  __ptr64
?QueryName@LSA_ACCOUNT@@UEBAPEBGXZ
; public: long __cdecl LSA_ACCT_DOM_INFO_MEM::QueryName(class NLS_STR * __ptr64)const  __ptr64
?QueryName@LSA_ACCT_DOM_INFO_MEM@@QEBAJPEAVNLS_STR@@@Z
; public: long __cdecl LSA_PRIMARY_DOM_INFO_MEM::QueryName(class NLS_STR * __ptr64)const  __ptr64
?QueryName@LSA_PRIMARY_DOM_INFO_MEM@@QEBAJPEAVNLS_STR@@@Z
; public: long __cdecl LSA_REF_DOMAIN_MEM::QueryName(unsigned long,class NLS_STR * __ptr64)const  __ptr64
?QueryName@LSA_REF_DOMAIN_MEM@@QEBAJKPEAVNLS_STR@@@Z
; public: long __cdecl LSA_TRANSLATED_NAME_MEM::QueryName(unsigned long,class NLS_STR * __ptr64)const  __ptr64
?QueryName@LSA_TRANSLATED_NAME_MEM@@QEBAJKPEAVNLS_STR@@@Z
; public: long __cdecl LSA_TRUST_INFO_MEM::QueryName(unsigned long,class NLS_STR * __ptr64)const  __ptr64
?QueryName@LSA_TRUST_INFO_MEM@@QEBAJKPEAVNLS_STR@@@Z
; public: virtual unsigned short const * __ptr64 __cdecl NET_ACCESS::QueryName(void)const  __ptr64
?QueryName@NET_ACCESS@@UEBAPEBGXZ
; public: virtual unsigned short const * __ptr64 __cdecl NEW_LM_OBJ::QueryName(void)const  __ptr64
?QueryName@NEW_LM_OBJ@@UEBAPEBGXZ
; public: long __cdecl OS_SID::QueryName(class NLS_STR * __ptr64,unsigned short const * __ptr64,void * __ptr64)const  __ptr64
?QueryName@OS_SID@@QEBAJPEAVNLS_STR@@PEBGPEAX@Z
; public: unsigned short const * __ptr64 __cdecl SERVER1_ENUM_OBJ::QueryName(void)const  __ptr64
?QueryName@SERVER1_ENUM_OBJ@@QEBAPEBGXZ
; public: virtual unsigned short const * __ptr64 __cdecl SERVER_0::QueryName(void)const  __ptr64
?QueryName@SERVER_0@@UEBAPEBGXZ
; public: virtual unsigned short const * __ptr64 __cdecl SHARE::QueryName(void)const  __ptr64
?QueryName@SHARE@@UEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl USER0_ENUM_OBJ::QueryName(void)const  __ptr64
?QueryName@USER0_ENUM_OBJ@@QEBAPEBGXZ
; public: virtual unsigned short const * __ptr64 __cdecl USER::QueryName(void)const  __ptr64
?QueryName@USER@@UEBAPEBGXZ
; public: virtual unsigned short const * __ptr64 __cdecl USER_MEMB::QueryName(void)const  __ptr64
?QueryName@USER_MEMB@@UEBAPEBGXZ
; public: virtual unsigned short const * __ptr64 __cdecl USER_MODALS::QueryName(void)const  __ptr64
?QueryName@USER_MODALS@@UEBAPEBGXZ
; public: virtual unsigned short const * __ptr64 __cdecl USER_MODALS_3::QueryName(void)const  __ptr64
?QueryName@USER_MODALS_3@@UEBAPEBGXZ
; public: unsigned long __cdecl OS_DACL_SUBJECT_ITER::QueryNewContainerAccessMask(void)const  __ptr64
?QueryNewContainerAccessMask@OS_DACL_SUBJECT_ITER@@QEBAKXZ
; public: unsigned long __cdecl OS_SACL_SUBJECT_ITER::QueryNewContainerAuditAccessMask_F(void)const  __ptr64
?QueryNewContainerAuditAccessMask_F@OS_SACL_SUBJECT_ITER@@QEBAKXZ
; public: unsigned long __cdecl OS_SACL_SUBJECT_ITER::QueryNewContainerAuditAccessMask_S(void)const  __ptr64
?QueryNewContainerAuditAccessMask_S@OS_SACL_SUBJECT_ITER@@QEBAKXZ
; public: unsigned long __cdecl OS_DACL_SUBJECT_ITER::QueryNewObjectAccessMask(void)const  __ptr64
?QueryNewObjectAccessMask@OS_DACL_SUBJECT_ITER@@QEBAKXZ
; public: unsigned long __cdecl OS_SACL_SUBJECT_ITER::QueryNewObjectAuditAccessMask_F(void)const  __ptr64
?QueryNewObjectAuditAccessMask_F@OS_SACL_SUBJECT_ITER@@QEBAKXZ
; public: unsigned long __cdecl OS_SACL_SUBJECT_ITER::QueryNewObjectAuditAccessMask_S(void)const  __ptr64
?QueryNewObjectAuditAccessMask_S@OS_SACL_SUBJECT_ITER@@QEBAKXZ
; public: int __cdecl SAM_PSWD_DOM_INFO_MEM::QueryNoAnonChange(void) __ptr64
?QueryNoAnonChange@SAM_PSWD_DOM_INFO_MEM@@QEAAHXZ
; public: int __cdecl USER_2::QueryNoPasswordExpire(void)const  __ptr64
?QueryNoPasswordExpire@USER_2@@QEBAHXZ
; public: unsigned int __cdecl LM_FILE_3::QueryNumLock(void)const  __ptr64
?QueryNumLock@LM_FILE_3@@QEBAIXZ
; public: unsigned long __cdecl FILE3_ENUM_OBJ::QueryNumLocks(void)const  __ptr64
?QueryNumLocks@FILE3_ENUM_OBJ@@QEBAKXZ
; public: unsigned int __cdecl LM_SESSION_1::QueryNumOpens(void)const  __ptr64
?QueryNumOpens@LM_SESSION_1@@QEBAIXZ
; public: unsigned long __cdecl OS_PRIVILEGE_SET::QueryNumberOfPrivileges(void)const  __ptr64
?QueryNumberOfPrivileges@OS_PRIVILEGE_SET@@QEBAKXZ
; public: unsigned long __cdecl USER_MODALS_3::QueryObservation(void)const  __ptr64
?QueryObservation@USER_MODALS_3@@QEBAKXZ
; public: class STRLIST * __ptr64 __cdecl WKSTA_10::QueryOtherDomains(void)const  __ptr64
?QueryOtherDomains@WKSTA_10@@QEBAPEAVSTRLIST@@XZ
; public: unsigned short const * __ptr64 __cdecl WKSTA_USER_1::QueryOtherDomains(void)const  __ptr64
?QueryOtherDomains@WKSTA_USER_1@@QEBAPEBGXZ
; public: long __cdecl OS_SECURITY_DESCRIPTOR::QueryOwner(int * __ptr64,class OS_SID * __ptr64 * __ptr64,int * __ptr64)const  __ptr64
?QueryOwner@OS_SECURITY_DESCRIPTOR@@QEBAJPEAHPEAPEAVOS_SID@@0@Z
; public: unsigned short const * __ptr64 __cdecl DOMAIN::QueryPDC(void)const  __ptr64
?QueryPDC@DOMAIN@@QEBAPEBGXZ
; public: void * __ptr64 __cdecl LSA_ACCT_DOM_INFO_MEM::QueryPSID(void)const  __ptr64
?QueryPSID@LSA_ACCT_DOM_INFO_MEM@@QEBAPEAXXZ
; public: void * __ptr64 __cdecl LSA_DOMAIN_INFO::QueryPSID(void)const  __ptr64
?QueryPSID@LSA_DOMAIN_INFO@@QEBAQEAXXZ
; public: void * __ptr64 __cdecl LSA_PRIMARY_DOM_INFO_MEM::QueryPSID(void)const  __ptr64
?QueryPSID@LSA_PRIMARY_DOM_INFO_MEM@@QEBAPEAXXZ
; public: void * __ptr64 __cdecl LSA_REF_DOMAIN_MEM::QueryPSID(unsigned long)const  __ptr64
?QueryPSID@LSA_REF_DOMAIN_MEM@@QEBAPEAXK@Z
; public: void * __ptr64 __cdecl LSA_TRUST_INFO_MEM::QueryPSID(unsigned long)const  __ptr64
?QueryPSID@LSA_TRUST_INFO_MEM@@QEBAPEAXK@Z
; public: void * __ptr64 __cdecl OS_SID::QueryPSID(void)const  __ptr64
?QueryPSID@OS_SID@@QEBAPEAXXZ
; public: void * __ptr64 __cdecl SAM_DOMAIN::QueryPSID(void)const  __ptr64
?QueryPSID@SAM_DOMAIN@@QEBAPEAXXZ
; public: unsigned short const * __ptr64 __cdecl USER_11::QueryParms(void)const  __ptr64
?QueryParms@USER_11@@QEBAPEBGXZ
; public: unsigned int __cdecl USER_MODALS::QueryPasswdHistLen(void)const  __ptr64
?QueryPasswdHistLen@USER_MODALS@@QEBAIXZ
; public: unsigned short const * __ptr64 __cdecl SHARE_2::QueryPassword(void)const  __ptr64
?QueryPassword@SHARE_2@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl USER_2::QueryPassword(void)const  __ptr64
?QueryPassword@USER_2@@QEBAPEBGXZ
; public: unsigned long __cdecl USER_3::QueryPasswordExpired(void)const  __ptr64
?QueryPasswordExpired@USER_3@@QEBAKXZ
; public: unsigned short const * __ptr64 __cdecl SHARE_2::QueryPath(void)const  __ptr64
?QueryPath@SHARE_2@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl FILE3_ENUM_OBJ::QueryPathName(void)const  __ptr64
?QueryPathName@FILE3_ENUM_OBJ@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl LM_FILE_3::QueryPathname(void)const  __ptr64
?QueryPathname@LM_FILE_3@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl NLS_STR::QueryPch(void)const  __ptr64
?QueryPch@NLS_STR@@QEBAPEBGXZ
; public: unsigned int __cdecl NET_ACCESS_1::QueryPerm(unsigned short const * __ptr64,enum PERMNAME_TYPE)const  __ptr64
?QueryPerm@NET_ACCESS_1@@QEBAIPEBGW4PERMNAME_TYPE@@@Z
; public: unsigned int __cdecl LM_FILE_3::QueryPermission(void)const  __ptr64
?QueryPermission@LM_FILE_3@@QEBAIXZ
; public: unsigned int __cdecl SHARE_2::QueryPermissions(void)const  __ptr64
?QueryPermissions@SHARE_2@@QEBAIXZ
; public: long __cdecl LSA_TRUSTED_DOMAIN::QueryPosixOffset(unsigned long * __ptr64)const  __ptr64
?QueryPosixOffset@LSA_TRUSTED_DOMAIN@@QEBAJPEAK@Z
; public: long __cdecl LSA_POLICY::QueryPrimaryBrowserGroup(class NLS_STR * __ptr64)const  __ptr64
?QueryPrimaryBrowserGroup@LSA_POLICY@@QEBAJPEAVNLS_STR@@@Z
; public: long __cdecl LSA_POLICY::QueryPrimaryDomainName(class NLS_STR * __ptr64)const  __ptr64
?QueryPrimaryDomainName@LSA_POLICY@@QEBAJPEAVNLS_STR@@@Z
; public: unsigned long __cdecl USER_3::QueryPrimaryGroupId(void)const  __ptr64
?QueryPrimaryGroupId@USER_3@@QEBAKXZ
; public: virtual unsigned int __cdecl LOCAL_USER::QueryPriv(void)const  __ptr64
?QueryPriv@LOCAL_USER@@UEBAIXZ
; public: virtual unsigned int __cdecl USER_11::QueryPriv(void)const  __ptr64
?QueryPriv@USER_11@@UEBAIXZ
; public: struct _PRIVILEGE_SET * __ptr64 __cdecl OS_PRIVILEGE_SET::QueryPrivSet(void)const  __ptr64
?QueryPrivSet@OS_PRIVILEGE_SET@@QEBAPEAU_PRIVILEGE_SET@@XZ
; public: class OS_LUID_AND_ATTRIBUTES const * __ptr64 __cdecl OS_PRIVILEGE_SET::QueryPrivilege(long) __ptr64
?QueryPrivilege@OS_PRIVILEGE_SET@@QEAAPEBVOS_LUID_AND_ATTRIBUTES@@J@Z
; public: long __cdecl LSA_ACCOUNT::QueryPrivilegeEnumIter(class LSA_ACCOUNT_PRIVILEGE_ENUM_ITER * __ptr64 * __ptr64) __ptr64
?QueryPrivilegeEnumIter@LSA_ACCOUNT@@QEAAJPEAPEAVLSA_ACCOUNT_PRIVILEGE_ENUM_ITER@@@Z
; public: static long __cdecl LSA_POLICY::QueryProductType(enum LSPL_PROD_TYPE * __ptr64)
?QueryProductType@LSA_POLICY@@SAJPEAW4LSPL_PROD_TYPE@@@Z
; public: unsigned short const * __ptr64 __cdecl USER_3::QueryProfile(void)const  __ptr64
?QueryProfile@USER_3@@QEBAPEBGXZ
; protected: unsigned char * __ptr64 __cdecl LM_ENUM::QueryPtr(void)const  __ptr64
?QueryPtr@LM_ENUM@@IEBAPEAEXZ
; public: struct _POLICY_ACCOUNT_DOMAIN_INFO const * __ptr64 __cdecl LSA_ACCT_DOM_INFO_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@LSA_ACCT_DOM_INFO_MEM@@QEBAPEBU_POLICY_ACCOUNT_DOMAIN_INFO@@XZ
; public: struct _POLICY_AUDIT_EVENTS_INFO * __ptr64 __cdecl LSA_AUDIT_EVENT_INFO_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@LSA_AUDIT_EVENT_INFO_MEM@@QEBAPEAU_POLICY_AUDIT_EVENTS_INFO@@XZ
; public: struct _POLICY_PRIMARY_DOMAIN_INFO const * __ptr64 __cdecl LSA_PRIMARY_DOM_INFO_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@LSA_PRIMARY_DOM_INFO_MEM@@QEBAPEBU_POLICY_PRIMARY_DOMAIN_INFO@@XZ
; private: struct _LSA_TRUST_INFORMATION const * __ptr64 __cdecl LSA_REF_DOMAIN_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@LSA_REF_DOMAIN_MEM@@AEBAPEBU_LSA_TRUST_INFORMATION@@XZ
; public: struct _POLICY_LSA_SERVER_ROLE_INFO const * __ptr64 __cdecl LSA_SERVER_ROLE_INFO_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@LSA_SERVER_ROLE_INFO_MEM@@QEBAPEBU_POLICY_LSA_SERVER_ROLE_INFO@@XZ
; private: struct _LSA_TRANSLATED_NAME const * __ptr64 __cdecl LSA_TRANSLATED_NAME_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@LSA_TRANSLATED_NAME_MEM@@AEBAPEBU_LSA_TRANSLATED_NAME@@XZ
; private: struct _LSA_TRANSLATED_SID const * __ptr64 __cdecl LSA_TRANSLATED_SID_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@LSA_TRANSLATED_SID_MEM@@AEBAPEBU_LSA_TRANSLATED_SID@@XZ
; public: struct _LSA_TRUST_INFORMATION const * __ptr64 __cdecl LSA_TRUST_INFO_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@LSA_TRUST_INFO_MEM@@QEBAPEBU_LSA_TRUST_INFORMATION@@XZ
; protected: void * __ptr64 __cdecl OS_OBJECT_WITH_DATA::QueryPtr(void)const  __ptr64
?QueryPtr@OS_OBJECT_WITH_DATA@@IEBAPEAXXZ
; public: struct _DOMAIN_PASSWORD_INFORMATION const * __ptr64 __cdecl SAM_PSWD_DOM_INFO_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@SAM_PSWD_DOM_INFO_MEM@@QEBAPEBU_DOMAIN_PASSWORD_INFORMATION@@XZ
; public: struct _SAM_RID_ENUMERATION const * __ptr64 __cdecl SAM_RID_ENUMERATION_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@SAM_RID_ENUMERATION_MEM@@QEBAPEBU_SAM_RID_ENUMERATION@@XZ
; public: unsigned long __cdecl SAM_ALIAS::QueryRID(void) __ptr64
?QueryRID@SAM_ALIAS@@QEAAKXZ
; public: long __cdecl OS_SID::QueryRawID(class NLS_STR * __ptr64)const  __ptr64
?QueryRawID@OS_SID@@QEBAJPEAVNLS_STR@@@Z
; public: long __cdecl NET_NAME::QueryRelativePath(class NLS_STR * __ptr64) __ptr64
?QueryRelativePath@NET_NAME@@QEAAJPEAVNLS_STR@@@Z
; public: unsigned short const * __ptr64 __cdecl DEVICE::QueryRemoteName(void)const  __ptr64
?QueryRemoteName@DEVICE@@QEBAPEBGXZ
; public: unsigned int __cdecl DEVICE::QueryRemoteType(void)const  __ptr64
?QueryRemoteType@DEVICE@@QEBAIXZ
; private: unsigned int __cdecl NET_ACCESS_1::QueryRequiredSpace(unsigned int)const  __ptr64
?QueryRequiredSpace@NET_ACCESS_1@@AEBAII@Z
; public: unsigned int __cdecl SHARE_1::QueryResourceType(void)const  __ptr64
?QueryResourceType@SHARE_1@@QEBAIXZ
; public: static unsigned long __cdecl OS_ACE::QueryRevision(void)
?QueryRevision@OS_ACE@@SAKXZ
; public: unsigned long const  __cdecl ALIAS_ENUM_OBJ::QueryRid(void)const  __ptr64
?QueryRid@ALIAS_ENUM_OBJ@@QEBA?BKXZ
; public: long __cdecl OS_SECURITY_DESCRIPTOR::QuerySACL(int * __ptr64,class OS_ACL * __ptr64 * __ptr64,int * __ptr64)const  __ptr64
?QuerySACL@OS_SECURITY_DESCRIPTOR@@QEBAJPEAHPEAPEAVOS_ACL@@0@Z
; public: long __cdecl OS_ACE::QuerySID(class OS_SID * __ptr64 * __ptr64)const  __ptr64
?QuerySID@OS_ACE@@QEBAJPEAPEAVOS_SID@@@Z
; public: class OS_SID const * __ptr64 __cdecl OS_ACL_SUBJECT_ITER::QuerySID(void)const  __ptr64
?QuerySID@OS_ACL_SUBJECT_ITER@@QEBAPEBVOS_SID@@XZ
; protected: void * __ptr64 __cdecl OS_ACE::QuerySIDMemory(void)const  __ptr64
?QuerySIDMemory@OS_ACE@@IEBAPEAXXZ
; public: class SAM_SERVER * __ptr64 __cdecl ADMIN_AUTHORITY::QuerySamServer(void)const  __ptr64
?QuerySamServer@ADMIN_AUTHORITY@@QEBAPEAVSAM_SERVER@@XZ
; public: unsigned short const * __ptr64 __cdecl USER_2::QueryScriptPath(void)const  __ptr64
?QueryScriptPath@USER_2@@QEBAPEBGXZ
; public: long __cdecl SC_SERVICE::QuerySecurity(unsigned long,void * __ptr64 * __ptr64) __ptr64
?QuerySecurity@SC_SERVICE@@QEAAJKPEAPEAX@Z
; public: unsigned int __cdecl SERVER_2::QuerySecurity(void)const  __ptr64
?QuerySecurity@SERVER_2@@QEBAIXZ
; public: unsigned short const * __ptr64 __cdecl DEVICE::QueryServer(void)const  __ptr64
?QueryServer@DEVICE@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl LM_FILE::QueryServer(void)const  __ptr64
?QueryServer@LM_FILE@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl LM_SESSION::QueryServer(void)const  __ptr64
?QueryServer@LM_SESSION@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl LOCATION::QueryServer(void)const  __ptr64
?QueryServer@LOCATION@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl LOC_LM_ENUM::QueryServer(void)const  __ptr64
?QueryServer@LOC_LM_ENUM@@QEBAPEBGXZ
; protected: unsigned short const * __ptr64 __cdecl LOC_LM_OBJ::QueryServer(void)const  __ptr64
?QueryServer@LOC_LM_OBJ@@IEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl LOC_LM_RESUME_ENUM::QueryServer(void)const  __ptr64
?QueryServer@LOC_LM_RESUME_ENUM@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl SHARE::QueryServer(void)const  __ptr64
?QueryServer@SHARE@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl LM_SERVICE::QueryServerName(void)const  __ptr64
?QueryServerName@LM_SERVICE@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl NET_ACCESS::QueryServerName(void)const  __ptr64
?QueryServerName@NET_ACCESS@@QEBAPEBGXZ
; public: long __cdecl NET_NAME::QueryServerShare(class NLS_STR * __ptr64) __ptr64
?QueryServerShare@NET_NAME@@QEAAJPEAVNLS_STR@@@Z
; public: unsigned long __cdecl SERVER1_ENUM_OBJ::QueryServerType(void)const  __ptr64
?QueryServerType@SERVER1_ENUM_OBJ@@QEBAKXZ
; public: unsigned long __cdecl SERVER_1::QueryServerType(void)const  __ptr64
?QueryServerType@SERVER_1@@QEBAKXZ
; public: long __cdecl SC_MANAGER::QueryServiceDisplayName(unsigned short const * __ptr64,class NLS_STR * __ptr64) __ptr64
?QueryServiceDisplayName@SC_MANAGER@@QEAAJPEBGPEAVNLS_STR@@@Z
; public: long __cdecl SC_MANAGER::QueryServiceKeyName(unsigned short const * __ptr64,class NLS_STR * __ptr64) __ptr64
?QueryServiceKeyName@SC_MANAGER@@QEAAJPEBGPEAVNLS_STR@@@Z
; public: long __cdecl NET_NAME::QueryShare(class NLS_STR * __ptr64) __ptr64
?QueryShare@NET_NAME@@QEAAJPEAVNLS_STR@@@Z
; public: void * __ptr64 __cdecl OS_SID::QuerySid(void)const  __ptr64
?QuerySid@OS_SID@@QEBAPEAXXZ
; public: unsigned short __cdecl OS_ACE::QuerySize(void)const  __ptr64
?QuerySize@OS_ACE@@QEBAGXZ
; public: long __cdecl OS_ACL::QuerySizeInformation(struct _ACL_SIZE_INFORMATION * __ptr64)const  __ptr64
?QuerySizeInformation@OS_ACL@@QEBAJPEAU_ACL_SIZE_INFORMATION@@@Z
; public: enum LMO_DEV_STATE  __cdecl DEVICE::QueryState(void)const  __ptr64
?QueryState@DEVICE@@QEBA?AW4LMO_DEV_STATE@@XZ
; public: unsigned int __cdecl DEVICE::QueryStatus(void)const  __ptr64
?QueryStatus@DEVICE@@QEBAIXZ
; public: enum LM_SERVICE_STATUS  __cdecl LM_SERVICE::QueryStatus(long * __ptr64) __ptr64
?QueryStatus@LM_SERVICE@@QEAA?AW4LM_SERVICE_STATUS@@PEAJ@Z
; public: long __cdecl SC_SERVICE::QueryStatus(struct _SERVICE_STATUS * __ptr64) __ptr64
?QueryStatus@SC_SERVICE@@QEAAJPEAU_SERVICE_STATUS@@@Z
; public: long __cdecl OS_SID::QuerySubAuthority(unsigned char,unsigned long * __ptr64 * __ptr64)const  __ptr64
?QuerySubAuthority@OS_SID@@QEBAJEPEAPEAK@Z
; public: long __cdecl OS_SID::QuerySubAuthorityCount(unsigned char * __ptr64 * __ptr64)const  __ptr64
?QuerySubAuthorityCount@OS_SID@@QEBAJPEAPEAE@Z
; public: static long __cdecl NT_ACCOUNTS_UTILITY::QuerySystemSid(enum UI_SystemSid,class OS_SID * __ptr64,unsigned short const * __ptr64)
?QuerySystemSid@NT_ACCOUNTS_UTILITY@@SAJW4UI_SystemSid@@PEAVOS_SID@@PEBG@Z
; public: unsigned int __cdecl NLS_STR::QueryTextLength(void)const  __ptr64
?QueryTextLength@NLS_STR@@QEBAIXZ
; public: unsigned long __cdecl USER_MODALS_3::QueryThreshold(void)const  __ptr64
?QueryThreshold@USER_MODALS_3@@QEBAKXZ
; public: unsigned long __cdecl LM_SESSION_10::QueryTime(void)const  __ptr64
?QueryTime@LM_SESSION_10@@QEBAKXZ
; protected: unsigned long __cdecl OS_ACL_SUBJECT_ITER::QueryTotalAceCount(void)const  __ptr64
?QueryTotalAceCount@OS_ACL_SUBJECT_ITER@@IEBAKXZ
; public: unsigned int __cdecl LM_RESUME_ENUM::QueryTotalItemCount(void)const  __ptr64
?QueryTotalItemCount@LM_RESUME_ENUM@@QEBAIXZ
; public: unsigned int __cdecl DEVICE::QueryType(void)const  __ptr64
?QueryType@DEVICE@@QEBAIXZ
; public: unsigned char __cdecl OS_ACE::QueryType(void)const  __ptr64
?QueryType@OS_ACE@@QEBAEXZ
; public: long __cdecl NET_NAME::QueryUNCPath(class NLS_STR * __ptr64) __ptr64
?QueryUNCPath@NET_NAME@@QEAAJPEAVNLS_STR@@@Z
; public: struct _UNICODE_STRING const * __ptr64 __cdecl NT_MACHINE_ENUM_OBJ::QueryUnicodeMachine(void)const  __ptr64
?QueryUnicodeMachine@NT_MACHINE_ENUM_OBJ@@QEBAPEBU_UNICODE_STRING@@XZ
; public: struct _UNICODE_STRING const * __ptr64 __cdecl LSA_ACCT_DOM_INFO_MEM::QueryUnicodeName(void)const  __ptr64
?QueryUnicodeName@LSA_ACCT_DOM_INFO_MEM@@QEBAPEBU_UNICODE_STRING@@XZ
; public: struct _UNICODE_STRING const * __ptr64 __cdecl LSA_PRIMARY_DOM_INFO_MEM::QueryUnicodeName(void)const  __ptr64
?QueryUnicodeName@LSA_PRIMARY_DOM_INFO_MEM@@QEBAPEBU_UNICODE_STRING@@XZ
; private: struct _UNICODE_STRING const * __ptr64 __cdecl LSA_REF_DOMAIN_MEM::QueryUnicodeName(unsigned long)const  __ptr64
?QueryUnicodeName@LSA_REF_DOMAIN_MEM@@AEBAPEBU_UNICODE_STRING@@K@Z
; private: struct _UNICODE_STRING const * __ptr64 __cdecl LSA_TRANSLATED_NAME_MEM::QueryUnicodeName(unsigned long)const  __ptr64
?QueryUnicodeName@LSA_TRANSLATED_NAME_MEM@@AEBAPEBU_UNICODE_STRING@@K@Z
; public: struct _UNICODE_STRING const * __ptr64 __cdecl LSA_TRUST_INFO_MEM::QueryUnicodeName(unsigned long)const  __ptr64
?QueryUnicodeName@LSA_TRUST_INFO_MEM@@QEBAPEBU_UNICODE_STRING@@K@Z
; public: struct _UNICODE_STRING const * __ptr64 __cdecl SAM_USER_ENUM_OBJ::QueryUnicodeUserName(void)const  __ptr64
?QueryUnicodeUserName@SAM_USER_ENUM_OBJ@@QEBAPEBU_UNICODE_STRING@@XZ
; public: unsigned int __cdecl LOGON_HOURS_SETTING::QueryUnitsPerWeek(void)const  __ptr64
?QueryUnitsPerWeek@LOGON_HOURS_SETTING@@QEBAIXZ
; private: struct _DOMAIN_PASSWORD_INFORMATION * __ptr64 __cdecl SAM_PSWD_DOM_INFO_MEM::QueryUpdatePtr(void)const  __ptr64
?QueryUpdatePtr@SAM_PSWD_DOM_INFO_MEM@@AEBAPEAU_DOMAIN_PASSWORD_INFORMATION@@XZ
; public: enum _SID_NAME_USE  __cdecl LSA_TRANSLATED_NAME_MEM::QueryUse(unsigned long)const  __ptr64
?QueryUse@LSA_TRANSLATED_NAME_MEM@@QEBA?AW4_SID_NAME_USE@@K@Z
; public: int __cdecl USER_2::QueryUserCantChangePass(void)const  __ptr64
?QueryUserCantChangePass@USER_2@@QEBAHXZ
; public: unsigned short const * __ptr64 __cdecl USER_11::QueryUserComment(void)const  __ptr64
?QueryUserComment@USER_11@@QEBAPEBGXZ
; protected: int __cdecl USER_2::QueryUserFlag(unsigned int)const  __ptr64
?QueryUserFlag@USER_2@@IEBAHI@Z
; public: unsigned long __cdecl LM_SESSION_1::QueryUserFlags(void)const  __ptr64
?QueryUserFlags@LM_SESSION_1@@QEBAKXZ
; public: unsigned int __cdecl USER_2::QueryUserFlags(void)const  __ptr64
?QueryUserFlags@USER_2@@QEBAIXZ
; public: unsigned long __cdecl USER_3::QueryUserId(void)const  __ptr64
?QueryUserId@USER_3@@QEBAKXZ
; public: long __cdecl SAM_USER_ENUM_OBJ::QueryUserName(class NLS_STR * __ptr64)const  __ptr64
?QueryUserName@SAM_USER_ENUM_OBJ@@QEBAJPEAVNLS_STR@@@Z
; public: unsigned short const * __ptr64 __cdecl WKSTA_USER_1::QueryUserName(void)const  __ptr64
?QueryUserName@WKSTA_USER_1@@QEBAPEBGXZ
; public: int __cdecl USER_2::QueryUserPassRequired(void)const  __ptr64
?QueryUserPassRequired@USER_2@@QEBAHXZ
; public: unsigned short const * __ptr64 __cdecl LM_FILE_3::QueryUsername(void)const  __ptr64
?QueryUsername@LM_FILE_3@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl LM_SESSION_10::QueryUsername(void)const  __ptr64
?QueryUsername@LM_SESSION_10@@QEBAPEBGXZ
; public: long __cdecl LM_CONFIG::QueryValue(class NLS_STR * __ptr64,unsigned short const * __ptr64) __ptr64
?QueryValue@LM_CONFIG@@QEAAJPEAVNLS_STR@@PEBG@Z
; public: unsigned short const * __ptr64 __cdecl WKSTA_10::QueryWkstaDomain(void)const  __ptr64
?QueryWkstaDomain@WKSTA_10@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl USER_11::QueryWorkstations(void)const  __ptr64
?QueryWorkstations@USER_11@@QEBAPEBGXZ
; private: void __cdecl LM_ENUM::RegisterIter(void) __ptr64
?RegisterIter@LM_ENUM@@AEAAXXZ
; private: void __cdecl LM_RESUME_ENUM::RegisterIter(void) __ptr64
?RegisterIter@LM_RESUME_ENUM@@AEAAXXZ
; public: class NLS_STR * __ptr64 __cdecl SLIST_OF_NLS_STR::Remove(class ITER_SL_NLS_STR & __ptr64) __ptr64
?Remove@SLIST_OF_NLS_STR@@QEAAPEAVNLS_STR@@AEAVITER_SL_NLS_STR@@@Z
; public: long __cdecl SAM_ALIAS::RemoveMember(void * __ptr64) __ptr64
?RemoveMember@SAM_ALIAS@@QEAAJPEAX@Z
; public: long __cdecl SAM_GROUP::RemoveMember(unsigned long) __ptr64
?RemoveMember@SAM_GROUP@@QEAAJK@Z
; public: long __cdecl SAM_DOMAIN::RemoveMemberFromAliases(void * __ptr64) __ptr64
?RemoveMemberFromAliases@SAM_DOMAIN@@QEAAJPEAX@Z
; public: long __cdecl SAM_ALIAS::RemoveMembers(void * __ptr64 * __ptr64,unsigned int) __ptr64
?RemoveMembers@SAM_ALIAS@@QEAAJPEAPEAXI@Z
; public: long __cdecl SAM_GROUP::RemoveMembers(unsigned long * __ptr64,unsigned int) __ptr64
?RemoveMembers@SAM_GROUP@@QEAAJPEAKI@Z
; public: long __cdecl OS_PRIVILEGE_SET::RemovePrivilege(long) __ptr64
?RemovePrivilege@OS_PRIVILEGE_SET@@QEAAJJ@Z
; public: long __cdecl OS_PRIVILEGE_SET::RemovePrivilege(struct _LUID) __ptr64
?RemovePrivilege@OS_PRIVILEGE_SET@@QEAAJU_LUID@@@Z
; public: long __cdecl USER::Rename(unsigned short const * __ptr64) __ptr64
?Rename@USER@@QEAAJPEBG@Z
; public: long __cdecl ADMIN_AUTHORITY::ReplaceAccountDomain(unsigned long) __ptr64
?ReplaceAccountDomain@ADMIN_AUTHORITY@@QEAAJK@Z
; public: long __cdecl ADMIN_AUTHORITY::ReplaceBuiltinDomain(unsigned long) __ptr64
?ReplaceBuiltinDomain@ADMIN_AUTHORITY@@QEAAJK@Z
; public: long __cdecl ADMIN_AUTHORITY::ReplaceLSAPolicy(unsigned long) __ptr64
?ReplaceLSAPolicy@ADMIN_AUTHORITY@@QEAAJK@Z
; public: long __cdecl ADMIN_AUTHORITY::ReplaceSamServer(unsigned long) __ptr64
?ReplaceSamServer@ADMIN_AUTHORITY@@QEAAJK@Z
; protected: void __cdecl BASE::ReportError(long) __ptr64
?ReportError@BASE@@IEAAXJ@Z
; protected: void __cdecl NEW_LM_OBJ::ReportError(long) __ptr64
?ReportError@NEW_LM_OBJ@@IEAAXJ@Z
; public: void __cdecl BROWSE_DOMAIN_ENUM::Reset(void) __ptr64
?Reset@BROWSE_DOMAIN_ENUM@@QEAAXXZ
; public: void __cdecl OS_ACL_SUBJECT_ITER::Reset(void) __ptr64
?Reset@OS_ACL_SUBJECT_ITER@@QEAAXXZ
; protected: void __cdecl LSA_OBJECT::ResetHandle(void) __ptr64
?ResetHandle@LSA_OBJECT@@IEAAXXZ
; protected: void __cdecl SAM_OBJECT::ResetHandle(void) __ptr64
?ResetHandle@SAM_OBJECT@@IEAAXXZ
; protected: long __cdecl OS_OBJECT_WITH_DATA::Resize(unsigned int) __ptr64
?Resize@OS_OBJECT_WITH_DATA@@IEAAJI@Z
; protected: long __cdecl NEW_LM_OBJ::ResizeBuffer(unsigned int) __ptr64
?ResizeBuffer@NEW_LM_OBJ@@IEAAJI@Z
; public: long __cdecl LM_MESSAGE::SendBuffer(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned int) __ptr64
?SendBuffer@LM_MESSAGE@@QEAAJPEBG0I@Z
; public: long __cdecl LM_MESSAGE::SendBuffer(unsigned short const * __ptr64,class BUFFER const & __ptr64) __ptr64
?SendBuffer@LM_MESSAGE@@QEAAJPEBGAEBVBUFFER@@@Z
; public: long __cdecl LOCATION::Set(class LOCATION const & __ptr64) __ptr64
?Set@LOCATION@@QEAAJAEBV1@@Z
; public: virtual void __cdecl LSA_MEMORY::Set(void * __ptr64,unsigned long) __ptr64
?Set@LSA_MEMORY@@UEAAXPEAXK@Z
; public: virtual void __cdecl NT_MEMORY::Set(void * __ptr64,unsigned long) __ptr64
?Set@NT_MEMORY@@UEAAXPEAXK@Z
; public: virtual void __cdecl SAM_MEMORY::Set(void * __ptr64,unsigned long) __ptr64
?Set@SAM_MEMORY@@UEAAXPEAXK@Z
; private: long __cdecl NET_NAME::SetABSPath(unsigned short const * __ptr64) __ptr64
?SetABSPath@NET_NAME@@AEAAJPEBG@Z
; public: void __cdecl OS_ACE::SetAccessMask(unsigned long) __ptr64
?SetAccessMask@OS_ACE@@QEAAXK@Z
; public: long __cdecl USER_2::SetAccountDisabled(int) __ptr64
?SetAccountDisabled@USER_2@@QEAAJH@Z
; public: long __cdecl LSA_POLICY::SetAccountDomain(class LSA_ACCT_DOM_INFO_MEM const * __ptr64) __ptr64
?SetAccountDomain@LSA_POLICY@@QEAAJPEBVLSA_ACCT_DOM_INFO_MEM@@@Z
; public: long __cdecl LSA_POLICY::SetAccountDomainName(class NLS_STR const * __ptr64,void * __ptr64 const * __ptr64) __ptr64
?SetAccountDomainName@LSA_POLICY@@QEAAJPEBVNLS_STR@@PEBQEAX@Z
; public: long __cdecl USER_2::SetAccountExpires(long) __ptr64
?SetAccountExpires@USER_2@@QEAAJJ@Z
; public: long __cdecl USER_3::SetAccountType(enum _ACCOUNT_TYPE) __ptr64
?SetAccountType@USER_3@@QEAAJW4_ACCOUNT_TYPE@@@Z
; protected: void __cdecl SHARE_1::SetAdminOnly(int) __ptr64
?SetAdminOnly@SHARE_1@@IEAAXH@Z
; public: long __cdecl LSA_POLICY::SetAuditEventInfo(class LSA_AUDIT_EVENT_INFO_MEM * __ptr64) __ptr64
?SetAuditEventInfo@LSA_POLICY@@QEAAJPEAVLSA_AUDIT_EVENT_INFO_MEM@@@Z
; public: long __cdecl NET_ACCESS_1::SetAuditFlags(short) __ptr64
?SetAuditFlags@NET_ACCESS_1@@QEAAJF@Z
; public: long __cdecl USER_11::SetAuthFlags(unsigned long) __ptr64
?SetAuthFlags@USER_11@@QEAAJK@Z
; protected: void __cdecl DEVICE::SetBufPtr(unsigned char * __ptr64) __ptr64
?SetBufPtr@DEVICE@@IEAAXPEAE@Z
; public: void __cdecl ALIAS_ENUM_OBJ::SetBufferPtr(struct _SAM_RID_ENUMERATION const * __ptr64) __ptr64
?SetBufferPtr@ALIAS_ENUM_OBJ@@QEAAXPEBU_SAM_RID_ENUMERATION@@@Z
; public: void __cdecl CHARDEVQ1_ENUM_OBJ::SetBufferPtr(struct _CHARDEVQ_INFO_1 const * __ptr64) __ptr64
?SetBufferPtr@CHARDEVQ1_ENUM_OBJ@@QEAAXPEBU_CHARDEVQ_INFO_1@@@Z
; public: void __cdecl CONN0_ENUM_OBJ::SetBufferPtr(struct _CONNECTION_INFO_0 const * __ptr64) __ptr64
?SetBufferPtr@CONN0_ENUM_OBJ@@QEAAXPEBU_CONNECTION_INFO_0@@@Z
; public: void __cdecl CONN1_ENUM_OBJ::SetBufferPtr(struct _CONNECTION_INFO_1 const * __ptr64) __ptr64
?SetBufferPtr@CONN1_ENUM_OBJ@@QEAAXPEBU_CONNECTION_INFO_1@@@Z
; public: void __cdecl CONTEXT_ENUM_OBJ::SetBufferPtr(struct _SERVER_INFO_101 const * __ptr64) __ptr64
?SetBufferPtr@CONTEXT_ENUM_OBJ@@QEAAXPEBU_SERVER_INFO_101@@@Z
; public: void __cdecl DOMAIN0_ENUM_OBJ::SetBufferPtr(struct _SERVER_INFO_100 const * __ptr64) __ptr64
?SetBufferPtr@DOMAIN0_ENUM_OBJ@@QEAAXPEBU_SERVER_INFO_100@@@Z
; protected: void __cdecl ENUM_OBJ_BASE::SetBufferPtr(unsigned char const * __ptr64) __ptr64
?SetBufferPtr@ENUM_OBJ_BASE@@IEAAXPEBE@Z
; public: void __cdecl FILE2_ENUM_OBJ::SetBufferPtr(struct _FILE_INFO_2 const * __ptr64) __ptr64
?SetBufferPtr@FILE2_ENUM_OBJ@@QEAAXPEBU_FILE_INFO_2@@@Z
; public: void __cdecl FILE3_ENUM_OBJ::SetBufferPtr(struct _FILE_INFO_3 const * __ptr64) __ptr64
?SetBufferPtr@FILE3_ENUM_OBJ@@QEAAXPEBU_FILE_INFO_3@@@Z
; public: void __cdecl GROUP0_ENUM_OBJ::SetBufferPtr(struct _GROUP_INFO_0 const * __ptr64) __ptr64
?SetBufferPtr@GROUP0_ENUM_OBJ@@QEAAXPEBU_GROUP_INFO_0@@@Z
; public: void __cdecl GROUP1_ENUM_OBJ::SetBufferPtr(struct _GROUP_INFO_1 const * __ptr64) __ptr64
?SetBufferPtr@GROUP1_ENUM_OBJ@@QEAAXPEBU_GROUP_INFO_1@@@Z
; public: void __cdecl LSA_ACCOUNTS_ENUM_OBJ::SetBufferPtr(void * __ptr64 const * __ptr64) __ptr64
?SetBufferPtr@LSA_ACCOUNTS_ENUM_OBJ@@QEAAXPEBQEAX@Z
; public: void __cdecl LSA_PRIVILEGES_ENUM_OBJ::SetBufferPtr(struct _POLICY_PRIVILEGE_DEFINITION const * __ptr64) __ptr64
?SetBufferPtr@LSA_PRIVILEGES_ENUM_OBJ@@QEAAXPEBU_POLICY_PRIVILEGE_DEFINITION@@@Z
; protected: void __cdecl NEW_LM_OBJ::SetBufferPtr(unsigned char * __ptr64) __ptr64
?SetBufferPtr@NEW_LM_OBJ@@IEAAXPEAE@Z
; public: void __cdecl NT_GROUP_ENUM_OBJ::SetBufferPtr(struct _DOMAIN_DISPLAY_GROUP const * __ptr64) __ptr64
?SetBufferPtr@NT_GROUP_ENUM_OBJ@@QEAAXPEBU_DOMAIN_DISPLAY_GROUP@@@Z
; public: void __cdecl NT_MACHINE_ENUM_OBJ::SetBufferPtr(struct _DOMAIN_DISPLAY_MACHINE const * __ptr64) __ptr64
?SetBufferPtr@NT_MACHINE_ENUM_OBJ@@QEAAXPEBU_DOMAIN_DISPLAY_MACHINE@@@Z
; public: void __cdecl NT_USER_ENUM_OBJ::SetBufferPtr(struct _DOMAIN_DISPLAY_USER const * __ptr64) __ptr64
?SetBufferPtr@NT_USER_ENUM_OBJ@@QEAAXPEBU_DOMAIN_DISPLAY_USER@@@Z
; public: void __cdecl SAM_USER_ENUM_OBJ::SetBufferPtr(struct _SAM_RID_ENUMERATION const * __ptr64) __ptr64
?SetBufferPtr@SAM_USER_ENUM_OBJ@@QEAAXPEBU_SAM_RID_ENUMERATION@@@Z
; public: void __cdecl SERVER1_ENUM_OBJ::SetBufferPtr(struct _SERVER_INFO_101 const * __ptr64) __ptr64
?SetBufferPtr@SERVER1_ENUM_OBJ@@QEAAXPEBU_SERVER_INFO_101@@@Z
; protected: void __cdecl SERVICE_ENUM_OBJ::SetBufferPtr(struct _ENUM_SVC_STATUS const * __ptr64) __ptr64
?SetBufferPtr@SERVICE_ENUM_OBJ@@IEAAXPEBU_ENUM_SVC_STATUS@@@Z
; public: void __cdecl SESSION0_ENUM_OBJ::SetBufferPtr(struct _SESSION_INFO_0 const * __ptr64) __ptr64
?SetBufferPtr@SESSION0_ENUM_OBJ@@QEAAXPEBU_SESSION_INFO_0@@@Z
; public: void __cdecl SESSION1_ENUM_OBJ::SetBufferPtr(struct _SESSION_INFO_1 const * __ptr64) __ptr64
?SetBufferPtr@SESSION1_ENUM_OBJ@@QEAAXPEBU_SESSION_INFO_1@@@Z
; public: void __cdecl SHARE1_ENUM_OBJ::SetBufferPtr(struct _SHARE_INFO_1 const * __ptr64) __ptr64
?SetBufferPtr@SHARE1_ENUM_OBJ@@QEAAXPEBU_SHARE_INFO_1@@@Z
; public: void __cdecl SHARE2_ENUM_OBJ::SetBufferPtr(struct _SHARE_INFO_2 const * __ptr64) __ptr64
?SetBufferPtr@SHARE2_ENUM_OBJ@@QEAAXPEBU_SHARE_INFO_2@@@Z
; public: void __cdecl TRIPLE_SERVER_ENUM_OBJ::SetBufferPtr(struct _TRIPLE_SERVER_INFO const * __ptr64) __ptr64
?SetBufferPtr@TRIPLE_SERVER_ENUM_OBJ@@QEAAXPEBU_TRIPLE_SERVER_INFO@@@Z
; public: void __cdecl TRUSTED_DOMAIN_ENUM_OBJ::SetBufferPtr(struct _LSA_TRUST_INFORMATION const * __ptr64) __ptr64
?SetBufferPtr@TRUSTED_DOMAIN_ENUM_OBJ@@QEAAXPEBU_LSA_TRUST_INFORMATION@@@Z
; public: void __cdecl USE1_ENUM_OBJ::SetBufferPtr(struct _USE_INFO_1 const * __ptr64) __ptr64
?SetBufferPtr@USE1_ENUM_OBJ@@QEAAXPEBU_USE_INFO_1@@@Z
; public: void __cdecl USER0_ENUM_OBJ::SetBufferPtr(struct _USER_INFO_0 const * __ptr64) __ptr64
?SetBufferPtr@USER0_ENUM_OBJ@@QEAAXPEBU_USER_INFO_0@@@Z
; public: void __cdecl USER10_ENUM_OBJ::SetBufferPtr(struct _USER_INFO_10 const * __ptr64) __ptr64
?SetBufferPtr@USER10_ENUM_OBJ@@QEAAXPEBU_USER_INFO_10@@@Z
; public: void __cdecl USER1_ENUM_OBJ::SetBufferPtr(struct _USER_INFO_1 const * __ptr64) __ptr64
?SetBufferPtr@USER1_ENUM_OBJ@@QEAAXPEBU_USER_INFO_1@@@Z
; public: void __cdecl USER2_ENUM_OBJ::SetBufferPtr(struct _USER_INFO_2 const * __ptr64) __ptr64
?SetBufferPtr@USER2_ENUM_OBJ@@QEAAXPEBU_USER_INFO_2@@@Z
; protected: long __cdecl LM_SESSION_2::SetClientType(unsigned short const * __ptr64) __ptr64
?SetClientType@LM_SESSION_2@@IEAAJPEBG@Z
; public: long __cdecl GROUP_1::SetComment(unsigned short const * __ptr64) __ptr64
?SetComment@GROUP_1@@QEAAJPEBG@Z
; public: long __cdecl SAM_ALIAS::SetComment(class NLS_STR const * __ptr64) __ptr64
?SetComment@SAM_ALIAS@@QEAAJPEBVNLS_STR@@@Z
; public: long __cdecl SERVER_1::SetComment(unsigned short const * __ptr64) __ptr64
?SetComment@SERVER_1@@QEAAJPEBG@Z
; public: long __cdecl SHARE_1::SetComment(unsigned short const * __ptr64) __ptr64
?SetComment@SHARE_1@@QEAAJPEBG@Z
; public: long __cdecl USER_11::SetComment(unsigned short const * __ptr64) __ptr64
?SetComment@USER_11@@QEAAJPEBG@Z
; public: long __cdecl LSA_TRUSTED_DOMAIN::SetControllerList(struct _TRUSTED_CONTROLLERS_INFO const & __ptr64) __ptr64
?SetControllerList@LSA_TRUSTED_DOMAIN@@QEAAJAEBU_TRUSTED_CONTROLLERS_INFO@@@Z
; public: long __cdecl LSA_TRUSTED_DOMAIN::SetControllerList(class LSA_REF_DOMAIN_MEM * __ptr64) __ptr64
?SetControllerList@LSA_TRUSTED_DOMAIN@@QEAAJPEAVLSA_REF_DOMAIN_MEM@@@Z
; protected: void __cdecl ENUM_CALLER::SetCount(unsigned int) __ptr64
?SetCount@ENUM_CALLER@@IEAAXI@Z
; protected: void __cdecl OS_ACL_SUBJECT_ITER::SetCurrentACE(unsigned long) __ptr64
?SetCurrentACE@OS_ACL_SUBJECT_ITER@@IEAAXK@Z
; protected: long __cdecl SHARE_2::SetCurrentUses(unsigned int) __ptr64
?SetCurrentUses@SHARE_2@@IEAAJI@Z
; public: long __cdecl OS_SECURITY_DESCRIPTOR::SetDACL(int,class OS_ACL const * __ptr64,int) __ptr64
?SetDACL@OS_SECURITY_DESCRIPTOR@@QEAAJHPEBVOS_ACL@@H@Z
; protected: void __cdecl DEVICE::SetDevState(enum LMO_DEV_STATE) __ptr64
?SetDevState@DEVICE@@IEAAXW4LMO_DEV_STATE@@@Z
; protected: void __cdecl DEVICE::SetDevType(enum LMO_DEVICE) __ptr64
?SetDevType@DEVICE@@IEAAXW4LMO_DEVICE@@@Z
; protected: long __cdecl DEVICE2::SetDomainName(unsigned short const * __ptr64) __ptr64
?SetDomainName@DEVICE2@@IEAAJPEBG@Z
; public: long __cdecl USER_MODALS_3::SetDuration(unsigned long) __ptr64
?SetDuration@USER_MODALS_3@@QEAAJK@Z
; protected: long __cdecl LM_FILE::SetFileId(unsigned long) __ptr64
?SetFileId@LM_FILE@@IEAAJK@Z
; public: long __cdecl USER_MODALS::SetForceLogoff(unsigned long) __ptr64
?SetForceLogoff@USER_MODALS@@QEAAJK@Z
; public: long __cdecl USER_11::SetFullName(unsigned short const * __ptr64) __ptr64
?SetFullName@USER_11@@QEAAJPEBG@Z
; public: long __cdecl OS_SECURITY_DESCRIPTOR::SetGroup(class OS_SID const & __ptr64,int) __ptr64
?SetGroup@OS_SECURITY_DESCRIPTOR@@QEAAJAEBVOS_SID@@H@Z
; public: long __cdecl OS_SECURITY_DESCRIPTOR::SetGroup(int,class OS_SID const * __ptr64,int) __ptr64
?SetGroup@OS_SECURITY_DESCRIPTOR@@QEAAJHPEBVOS_SID@@H@Z
; public: long __cdecl SAM_GROUP::SetGroupname(class NLS_STR const * __ptr64) __ptr64
?SetGroupname@SAM_GROUP@@QEAAJPEBVNLS_STR@@@Z
; protected: void __cdecl LSA_OBJECT::SetHandle(void * __ptr64) __ptr64
?SetHandle@LSA_OBJECT@@IEAAXPEAX@Z
; protected: void __cdecl SAM_OBJECT::SetHandle(void * __ptr64) __ptr64
?SetHandle@SAM_OBJECT@@IEAAXPEAX@Z
; protected: void __cdecl SERVICE_CONTROL::SetHandle(struct SC_HANDLE__ * __ptr64) __ptr64
?SetHandle@SERVICE_CONTROL@@IEAAXPEAUSC_HANDLE__@@@Z
; public: long __cdecl USER_11::SetHomeDir(unsigned short const * __ptr64) __ptr64
?SetHomeDir@USER_11@@QEAAJPEBG@Z
; public: long __cdecl USER_3::SetHomedirDrive(unsigned short const * __ptr64) __ptr64
?SetHomedirDrive@USER_3@@QEAAJPEBG@Z
; protected: void __cdecl LM_SESSION_10::SetIdleTime(unsigned long) __ptr64
?SetIdleTime@LM_SESSION_10@@IEAAXK@Z
; protected: virtual void __cdecl DEVICE2::SetInfo(void) __ptr64
?SetInfo@DEVICE2@@MEAAXXZ
; protected: virtual void __cdecl DEVICE::SetInfo(void) __ptr64
?SetInfo@DEVICE@@MEAAXXZ
; public: long __cdecl LSA_SECRET::SetInfo(class NLS_STR const * __ptr64,class NLS_STR const * __ptr64) __ptr64
?SetInfo@LSA_SECRET@@QEAAJPEBVNLS_STR@@0@Z
; public: void __cdecl OS_ACE::SetInheritOnly(int) __ptr64
?SetInheritOnly@OS_ACE@@QEAAXH@Z
; public: long __cdecl USER_2::SetLockout(int) __ptr64
?SetLockout@USER_2@@QEAAJH@Z
; public: long __cdecl WKSTA_USER_1::SetLogonDomain(unsigned short const * __ptr64) __ptr64
?SetLogonDomain@WKSTA_USER_1@@QEAAJPEBG@Z
; public: long __cdecl USER_11::SetLogonHours(class LOGON_HOURS_SETTING const & __ptr64) __ptr64
?SetLogonHours@USER_11@@QEAAJAEBVLOGON_HOURS_SETTING@@@Z
; public: long __cdecl USER_11::SetLogonHours(unsigned char const * __ptr64,unsigned int) __ptr64
?SetLogonHours@USER_11@@QEAAJPEBEI@Z
; public: long __cdecl WKSTA_USER_1::SetLogonServer(unsigned short const * __ptr64) __ptr64
?SetLogonServer@WKSTA_USER_1@@QEAAJPEBG@Z
; public: void __cdecl OS_LUID_AND_ATTRIBUTES::SetLuidAndAttrib(struct _LUID_AND_ATTRIBUTES) __ptr64
?SetLuidAndAttrib@OS_LUID_AND_ATTRIBUTES@@QEAAXU_LUID_AND_ATTRIBUTES@@@Z
; protected: void __cdecl SERVER_1::SetMajorMinorVer(unsigned int,unsigned int) __ptr64
?SetMajorMinorVer@SERVER_1@@IEAAXII@Z
; public: long __cdecl USER_MODALS::SetMaxPasswdAge(unsigned long) __ptr64
?SetMaxPasswdAge@USER_MODALS@@QEAAJK@Z
; protected: void __cdecl SERVER_2::SetMaxUsers(unsigned int) __ptr64
?SetMaxUsers@SERVER_2@@IEAAXI@Z
; public: long __cdecl SHARE_2::SetMaxUses(unsigned int) __ptr64
?SetMaxUses@SHARE_2@@QEAAJI@Z
; public: long __cdecl USER_MODALS::SetMinPasswdAge(unsigned long) __ptr64
?SetMinPasswdAge@USER_MODALS@@QEAAJK@Z
; public: long __cdecl USER_MODALS::SetMinPasswdLen(unsigned int) __ptr64
?SetMinPasswdLen@USER_MODALS@@QEAAJI@Z
; public: long __cdecl COMPUTER::SetName(unsigned short const * __ptr64) __ptr64
?SetName@COMPUTER@@QEAAJPEBG@Z
; public: long __cdecl GROUP::SetName(unsigned short const * __ptr64) __ptr64
?SetName@GROUP@@QEAAJPEBG@Z
; public: long __cdecl GROUP_MEMB::SetName(unsigned short const * __ptr64) __ptr64
?SetName@GROUP_MEMB@@QEAAJPEBG@Z
; protected: long __cdecl LM_SERVICE::SetName(unsigned short const * __ptr64) __ptr64
?SetName@LM_SERVICE@@IEAAJPEBG@Z
; protected: long __cdecl LM_SESSION::SetName(unsigned short const * __ptr64) __ptr64
?SetName@LM_SESSION@@IEAAJPEBG@Z
; public: long __cdecl NET_ACCESS::SetName(unsigned short const * __ptr64) __ptr64
?SetName@NET_ACCESS@@QEAAJPEBG@Z
; protected: long __cdecl SHARE::SetName(unsigned short const * __ptr64) __ptr64
?SetName@SHARE@@IEAAJPEBG@Z
; public: long __cdecl USER::SetName(unsigned short const * __ptr64) __ptr64
?SetName@USER@@QEAAJPEBG@Z
; public: long __cdecl USER_MEMB::SetName(unsigned short const * __ptr64) __ptr64
?SetName@USER_MEMB@@QEAAJPEBG@Z
; public: void __cdecl SAM_PSWD_DOM_INFO_MEM::SetNoAnonChange(int) __ptr64
?SetNoAnonChange@SAM_PSWD_DOM_INFO_MEM@@QEAAXH@Z
; public: long __cdecl USER_2::SetNoPasswordExpire(int) __ptr64
?SetNoPasswordExpire@USER_2@@QEAAJH@Z
; protected: void __cdecl LM_SESSION_1::SetNumOpens(unsigned int) __ptr64
?SetNumOpens@LM_SESSION_1@@IEAAXI@Z
; public: long __cdecl USER_MODALS_3::SetObservation(unsigned long) __ptr64
?SetObservation@USER_MODALS_3@@QEAAJK@Z
; public: long __cdecl WKSTA_USER_1::SetOtherDomains(unsigned short const * __ptr64) __ptr64
?SetOtherDomains@WKSTA_USER_1@@QEAAJPEBG@Z
; public: long __cdecl OS_SECURITY_DESCRIPTOR::SetOwner(class OS_SID const & __ptr64,int) __ptr64
?SetOwner@OS_SECURITY_DESCRIPTOR@@QEAAJAEBVOS_SID@@H@Z
; public: long __cdecl OS_SECURITY_DESCRIPTOR::SetOwner(int,class OS_SID const * __ptr64,int) __ptr64
?SetOwner@OS_SECURITY_DESCRIPTOR@@QEAAJHPEBVOS_SID@@H@Z
; public: long __cdecl USER_11::SetParms(unsigned short const * __ptr64) __ptr64
?SetParms@USER_11@@QEAAJPEBG@Z
; public: long __cdecl USER_MODALS::SetPasswdHistLen(unsigned int) __ptr64
?SetPasswdHistLen@USER_MODALS@@QEAAJI@Z
; public: long __cdecl SAM_USER::SetPassword(class NLS_STR const & __ptr64,class NLS_STR const & __ptr64) __ptr64
?SetPassword@SAM_USER@@QEAAJAEBVNLS_STR@@0@Z
; public: long __cdecl SAM_USER::SetPassword(class NLS_STR const & __ptr64,int) __ptr64
?SetPassword@SAM_USER@@QEAAJAEBVNLS_STR@@H@Z
; public: long __cdecl SHARE_2::SetPassword(unsigned short const * __ptr64) __ptr64
?SetPassword@SHARE_2@@QEAAJPEBG@Z
; public: long __cdecl USER_2::SetPassword(unsigned short const * __ptr64) __ptr64
?SetPassword@USER_2@@QEAAJPEBG@Z
; public: long __cdecl USER_3::SetPasswordExpired(unsigned long) __ptr64
?SetPasswordExpired@USER_3@@QEAAJK@Z
; public: long __cdecl SAM_DOMAIN::SetPasswordInfo(class SAM_PSWD_DOM_INFO_MEM const * __ptr64) __ptr64
?SetPasswordInfo@SAM_DOMAIN@@QEAAJPEBVSAM_PSWD_DOM_INFO_MEM@@@Z
; public: long __cdecl SHARE_2::SetPath(unsigned short const * __ptr64) __ptr64
?SetPath@SHARE_2@@QEAAJPEBG@Z
; public: long __cdecl NET_ACCESS_1::SetPerm(unsigned short const * __ptr64,enum PERMNAME_TYPE,unsigned int) __ptr64
?SetPerm@NET_ACCESS_1@@QEAAJPEBGW4PERMNAME_TYPE@@I@Z
; public: long __cdecl SHARE_2::SetPermissions(unsigned int) __ptr64
?SetPermissions@SHARE_2@@QEAAJI@Z
; public: long __cdecl LSA_TRUSTED_DOMAIN::SetPosixOffset(unsigned long) __ptr64
?SetPosixOffset@LSA_TRUSTED_DOMAIN@@QEAAJK@Z
; public: long __cdecl LSA_POLICY::SetPrimaryBrowserGroup(class NLS_STR const & __ptr64) __ptr64
?SetPrimaryBrowserGroup@LSA_POLICY@@QEAAJAEBVNLS_STR@@@Z
; public: long __cdecl LSA_POLICY::SetPrimaryDomain(class LSA_PRIMARY_DOM_INFO_MEM const * __ptr64) __ptr64
?SetPrimaryDomain@LSA_POLICY@@QEAAJPEBVLSA_PRIMARY_DOM_INFO_MEM@@@Z
; public: long __cdecl LSA_POLICY::SetPrimaryDomainName(class NLS_STR const * __ptr64,void * __ptr64 const * __ptr64) __ptr64
?SetPrimaryDomainName@LSA_POLICY@@QEAAJPEBVNLS_STR@@PEBQEAX@Z
; public: long __cdecl USER_3::SetPrimaryGroupId(unsigned long) __ptr64
?SetPrimaryGroupId@USER_3@@QEAAJK@Z
; public: long __cdecl USER_11::SetPriv(unsigned int) __ptr64
?SetPriv@USER_11@@QEAAJI@Z
; public: long __cdecl USER_3::SetProfile(unsigned short const * __ptr64) __ptr64
?SetProfile@USER_3@@QEAAJPEBG@Z
; public: long __cdecl OS_ACE::SetPtr(void * __ptr64) __ptr64
?SetPtr@OS_ACE@@QEAAJPEAX@Z
; public: void __cdecl OS_PRIVILEGE_SET::SetPtr(struct _PRIVILEGE_SET * __ptr64) __ptr64
?SetPtr@OS_PRIVILEGE_SET@@QEAAXPEAU_PRIVILEGE_SET@@@Z
; public: long __cdecl OS_SID::SetPtr(void * __ptr64) __ptr64
?SetPtr@OS_SID@@QEAAJPEAX@Z
; protected: void __cdecl DEVICE::SetRemoteName(unsigned short const * __ptr64) __ptr64
?SetRemoteName@DEVICE@@IEAAXPEBG@Z
; protected: void __cdecl DEVICE::SetRemoteType(unsigned int) __ptr64
?SetRemoteType@DEVICE@@IEAAXI@Z
; protected: long __cdecl SHARE_1::SetResourceType(unsigned int) __ptr64
?SetResourceType@SHARE_1@@IEAAJI@Z
; public: long __cdecl SHARE_2::SetResourceType(unsigned int) __ptr64
?SetResourceType@SHARE_2@@QEAAJI@Z
; public: long __cdecl OS_SECURITY_DESCRIPTOR::SetSACL(int,class OS_ACL const * __ptr64,int) __ptr64
?SetSACL@OS_SECURITY_DESCRIPTOR@@QEAAJHPEBVOS_ACL@@H@Z
; public: long __cdecl OS_ACE::SetSID(class OS_SID const & __ptr64) __ptr64
?SetSID@OS_ACE@@QEAAJAEBVOS_SID@@@Z
; public: long __cdecl USER_2::SetScriptPath(unsigned short const * __ptr64) __ptr64
?SetScriptPath@USER_2@@QEAAJPEBG@Z
; public: long __cdecl SC_SERVICE::SetSecurity(unsigned long,void * __ptr64 const) __ptr64
?SetSecurity@SC_SERVICE@@QEAAJKQEAX@Z
; protected: void __cdecl SERVER_2::SetSecurity(unsigned int) __ptr64
?SetSecurity@SERVER_2@@IEAAXI@Z
; protected: long __cdecl LM_FILE::SetServer(unsigned short const * __ptr64) __ptr64
?SetServer@LM_FILE@@IEAAJPEBG@Z
; protected: void __cdecl DEVICE::SetServerName(unsigned short const * __ptr64) __ptr64
?SetServerName@DEVICE@@IEAAXPEBG@Z
; protected: long __cdecl LM_SERVICE::SetServerName(unsigned short const * __ptr64) __ptr64
?SetServerName@LM_SERVICE@@IEAAJPEBG@Z
; public: long __cdecl NET_ACCESS::SetServerName(unsigned short const * __ptr64) __ptr64
?SetServerName@NET_ACCESS@@QEAAJPEBG@Z
; public: long __cdecl LSA_POLICY::SetServerRole(class LSA_SERVER_ROLE_INFO_MEM const * __ptr64) __ptr64
?SetServerRole@LSA_POLICY@@QEAAJPEBVLSA_SERVER_ROLE_INFO_MEM@@@Z
; protected: void __cdecl SERVER_1::SetServerType(unsigned long) __ptr64
?SetServerType@SERVER_1@@IEAAXK@Z
; public: long __cdecl LSA_POLICY::SetShutDownOnFull(int) __ptr64
?SetShutDownOnFull@LSA_POLICY@@QEAAJH@Z
; public: long __cdecl OS_ACE::SetSize(unsigned int) __ptr64
?SetSize@OS_ACE@@QEAAJI@Z
; protected: long __cdecl OS_ACL::SetSize(unsigned int,int) __ptr64
?SetSize@OS_ACL@@IEAAJIH@Z
; protected: void __cdecl DEVICE::SetStatus(unsigned int) __ptr64
?SetStatus@DEVICE@@IEAAXI@Z
; public: long __cdecl USER_MODALS_3::SetThreshold(unsigned long) __ptr64
?SetThreshold@USER_MODALS_3@@QEAAJK@Z
; protected: void __cdecl LM_SESSION_10::SetTime(unsigned long) __ptr64
?SetTime@LM_SESSION_10@@IEAAXK@Z
; private: long __cdecl NET_NAME::SetUNCPath(unsigned short const * __ptr64) __ptr64
?SetUNCPath@NET_NAME@@AEAAJPEBG@Z
; public: long __cdecl USER_2::SetUserCantChangePass(int) __ptr64
?SetUserCantChangePass@USER_2@@QEAAJH@Z
; public: long __cdecl USER_11::SetUserComment(unsigned short const * __ptr64) __ptr64
?SetUserComment@USER_11@@QEAAJPEBG@Z
; protected: long __cdecl USER_2::SetUserFlag(int,unsigned int) __ptr64
?SetUserFlag@USER_2@@IEAAJHI@Z
; protected: void __cdecl LM_SESSION_1::SetUserFlags(unsigned long) __ptr64
?SetUserFlags@LM_SESSION_1@@IEAAXK@Z
; public: long __cdecl USER_2::SetUserFlags(unsigned int) __ptr64
?SetUserFlags@USER_2@@QEAAJI@Z
; protected: long __cdecl USER_3::SetUserId(unsigned long) __ptr64
?SetUserId@USER_3@@IEAAJK@Z
; public: long __cdecl WKSTA_USER_1::SetUserName(unsigned short const * __ptr64) __ptr64
?SetUserName@WKSTA_USER_1@@QEAAJPEBG@Z
; public: long __cdecl USER_2::SetUserPassRequired(int) __ptr64
?SetUserPassRequired@USER_2@@QEAAJH@Z
; protected: long __cdecl DEVICE2::SetUsername(unsigned short const * __ptr64) __ptr64
?SetUsername@DEVICE2@@IEAAJPEBG@Z
; protected: long __cdecl LM_SESSION_10::SetUsername(unsigned short const * __ptr64) __ptr64
?SetUsername@LM_SESSION_10@@IEAAJPEBG@Z
; public: long __cdecl SAM_USER::SetUsername(class NLS_STR const * __ptr64) __ptr64
?SetUsername@SAM_USER@@QEAAJPEBVNLS_STR@@@Z
; public: long __cdecl LM_CONFIG::SetValue(class NLS_STR * __ptr64) __ptr64
?SetValue@LM_CONFIG@@QEAAJPEAVNLS_STR@@@Z
; public: long __cdecl USER_11::SetWorkstations(unsigned short const * __ptr64) __ptr64
?SetWorkstations@USER_11@@QEAAJPEBG@Z
; protected: long __cdecl SHARE_2::SetWriteBuffer(int) __ptr64
?SetWriteBuffer@SHARE_2@@IEAAJH@Z
; void __cdecl SkipWhiteSpace(unsigned short * __ptr64 * __ptr64)
?SkipWhiteSpace@@YAXPEAPEAG@Z
; public: void __cdecl DOMAIN0_ENUM::Sort(void) __ptr64
?Sort@DOMAIN0_ENUM@@QEAAXXZ
; public: long __cdecl LM_SERVICE::Start(unsigned short const * __ptr64,unsigned int,unsigned int) __ptr64
?Start@LM_SERVICE@@QEAAJPEBGII@Z
; public: long __cdecl SC_SERVICE::Start(unsigned int,unsigned short const * __ptr64 * __ptr64) __ptr64
?Start@SC_SERVICE@@QEAAJIPEAPEBG@Z
; public: long __cdecl LM_SERVICE::Stop(unsigned int,unsigned int) __ptr64
?Stop@LM_SERVICE@@QEAAJII@Z
; protected: long __cdecl LSA_POLICY::TcharArrayToUnistrArray(unsigned short const * __ptr64 const * __ptr64,struct _UNICODE_STRING * __ptr64,unsigned long) __ptr64
?TcharArrayToUnistrArray@LSA_POLICY@@IEAAJPEBQEBGPEAU_UNICODE_STRING@@K@Z
; public: long __cdecl SAM_DOMAIN::TranslateNamesToRids(unsigned short const * __ptr64 const * __ptr64,unsigned long,class SAM_RID_MEM * __ptr64,class SAM_SID_NAME_USE_MEM * __ptr64)const  __ptr64
?TranslateNamesToRids@SAM_DOMAIN@@QEBAJPEBQEBGKPEAVSAM_RID_MEM@@PEAVSAM_SID_NAME_USE_MEM@@@Z
; public: long __cdecl LSA_POLICY::TranslateNamesToSids(unsigned short const * __ptr64 const * __ptr64,unsigned long,class LSA_TRANSLATED_SID_MEM * __ptr64,class LSA_REF_DOMAIN_MEM * __ptr64) __ptr64
?TranslateNamesToSids@LSA_POLICY@@QEAAJPEBQEBGKPEAVLSA_TRANSLATED_SID_MEM@@PEAVLSA_REF_DOMAIN_MEM@@@Z
; public: long __cdecl LSA_POLICY::TranslateSidsToNames(void * __ptr64 const * __ptr64,unsigned long,class LSA_TRANSLATED_NAME_MEM * __ptr64,class LSA_REF_DOMAIN_MEM * __ptr64) __ptr64
?TranslateSidsToNames@LSA_POLICY@@QEAAJPEBQEAXKPEAVLSA_TRANSLATED_NAME_MEM@@PEAVLSA_REF_DOMAIN_MEM@@@Z
; public: long __cdecl OS_SID::TrimLastSubAuthority(unsigned long * __ptr64) __ptr64
?TrimLastSubAuthority@OS_SID@@QEAAJPEAK@Z
; public: long __cdecl USER_11::TrimParams(void) __ptr64
?TrimParams@USER_11@@QEAAJXZ
; public: long __cdecl LSA_POLICY::TrustDomain(class LSA_POLICY & __ptr64,class NLS_STR const & __ptr64,int,unsigned short const * __ptr64) __ptr64
?TrustDomain@LSA_POLICY@@QEAAJAEAV1@AEBVNLS_STR@@HPEBG@Z
; public: long __cdecl LSA_POLICY::TrustDomain(class NLS_STR const & __ptr64,void * __ptr64 const,class NLS_STR const & __ptr64,int,unsigned short const * __ptr64,int) __ptr64
?TrustDomain@LSA_POLICY@@QEAAJAEBVNLS_STR@@QEAX0HPEBGH@Z
; public: long __cdecl SC_MANAGER::Unlock(void) __ptr64
?Unlock@SC_MANAGER@@QEAAJXZ
; protected: long __cdecl OS_SECURITY_DESCRIPTOR::UpdateControl(void) __ptr64
?UpdateControl@OS_SECURITY_DESCRIPTOR@@IEAAJXZ
; protected: long __cdecl OS_SECURITY_DESCRIPTOR::UpdateReferencedSecurityObject(class OS_OBJECT_WITH_DATA * __ptr64) __ptr64
?UpdateReferencedSecurityObject@OS_SECURITY_DESCRIPTOR@@IEAAJPEAVOS_OBJECT_WITH_DATA@@@Z
; public: long __cdecl ADMIN_AUTHORITY::UpgradeAccountDomain(unsigned long) __ptr64
?UpgradeAccountDomain@ADMIN_AUTHORITY@@QEAAJK@Z
; public: long __cdecl ADMIN_AUTHORITY::UpgradeBuiltinDomain(unsigned long) __ptr64
?UpgradeBuiltinDomain@ADMIN_AUTHORITY@@QEAAJK@Z
; public: long __cdecl ADMIN_AUTHORITY::UpgradeLSAPolicy(unsigned long) __ptr64
?UpgradeLSAPolicy@ADMIN_AUTHORITY@@QEAAJK@Z
; public: long __cdecl ADMIN_AUTHORITY::UpgradeSamServer(unsigned long) __ptr64
?UpgradeSamServer@ADMIN_AUTHORITY@@QEAAJK@Z
; private: long __cdecl COMPUTER::ValidateName(unsigned short const * __ptr64) __ptr64
?ValidateName@COMPUTER@@AEAAJPEBG@Z
; protected: virtual long __cdecl DEVICE::ValidateName(void) __ptr64
?ValidateName@DEVICE@@MEAAJXZ
; protected: virtual long __cdecl DOMAIN::ValidateName(void) __ptr64
?ValidateName@DOMAIN@@MEAAJXZ
; protected: virtual long __cdecl LM_OBJ::ValidateName(void) __ptr64
?ValidateName@LM_OBJ@@MEAAJXZ
; public: static long __cdecl NT_ACCOUNTS_UTILITY::ValidateQualifiedAccountName(class NLS_STR const & __ptr64,int * __ptr64)
?ValidateQualifiedAccountName@NT_ACCOUNTS_UTILITY@@SAJAEBVNLS_STR@@PEAH@Z
; public: long __cdecl LSA_POLICY::VerifyLsa(class LSA_PRIMARY_DOM_INFO_MEM * __ptr64,class NLS_STR const * __ptr64)const  __ptr64
?VerifyLsa@LSA_POLICY@@QEBAJPEAVLSA_PRIMARY_DOM_INFO_MEM@@PEBVNLS_STR@@@Z
; private: static long __cdecl NT_ACCOUNTS_UTILITY::W_BuildQualifiedAccountName(class NLS_STR * __ptr64,class NLS_STR const & __ptr64,class NLS_STR const * __ptr64,enum _SID_NAME_USE)
?W_BuildQualifiedAccountName@NT_ACCOUNTS_UTILITY@@CAJPEAVNLS_STR@@AEBV2@PEBV2@W4_SID_NAME_USE@@@Z
; protected: virtual long __cdecl NEW_LM_OBJ::W_ChangeToNew(void) __ptr64
?W_ChangeToNew@NEW_LM_OBJ@@MEAAJXZ
; protected: long __cdecl ENUM_CALLER_LM_OBJ::W_CloneFrom(class ENUM_CALLER_LM_OBJ const & __ptr64) __ptr64
?W_CloneFrom@ENUM_CALLER_LM_OBJ@@IEAAJAEBV1@@Z
; protected: long __cdecl GROUP::W_CloneFrom(class GROUP const & __ptr64) __ptr64
?W_CloneFrom@GROUP@@IEAAJAEBV1@@Z
; protected: long __cdecl GROUP_1::W_CloneFrom(class GROUP_1 const & __ptr64) __ptr64
?W_CloneFrom@GROUP_1@@IEAAJAEBV1@@Z
; protected: long __cdecl LOC_LM_OBJ::W_CloneFrom(class LOC_LM_OBJ const & __ptr64) __ptr64
?W_CloneFrom@LOC_LM_OBJ@@IEAAJAEBV1@@Z
; protected: long __cdecl MEMBERSHIP_LM_OBJ::W_CloneFrom(class MEMBERSHIP_LM_OBJ const & __ptr64) __ptr64
?W_CloneFrom@MEMBERSHIP_LM_OBJ@@IEAAJAEBV1@@Z
; protected: long __cdecl NEW_LM_OBJ::W_CloneFrom(class NEW_LM_OBJ const & __ptr64) __ptr64
?W_CloneFrom@NEW_LM_OBJ@@IEAAJAEBV1@@Z
; protected: long __cdecl SHARE::W_CloneFrom(class SHARE const & __ptr64) __ptr64
?W_CloneFrom@SHARE@@IEAAJAEBV1@@Z
; protected: long __cdecl SHARE_1::W_CloneFrom(class SHARE_1 const & __ptr64) __ptr64
?W_CloneFrom@SHARE_1@@IEAAJAEBV1@@Z
; protected: long __cdecl SHARE_2::W_CloneFrom(class SHARE_2 const & __ptr64) __ptr64
?W_CloneFrom@SHARE_2@@IEAAJAEBV1@@Z
; protected: long __cdecl USER::W_CloneFrom(class USER const & __ptr64) __ptr64
?W_CloneFrom@USER@@IEAAJAEBV1@@Z
; protected: long __cdecl USER_11::W_CloneFrom(class USER_11 const & __ptr64) __ptr64
?W_CloneFrom@USER_11@@IEAAJAEBV1@@Z
; protected: long __cdecl USER_2::W_CloneFrom(class USER_2 const & __ptr64) __ptr64
?W_CloneFrom@USER_2@@IEAAJAEBV1@@Z
; protected: long __cdecl USER_3::W_CloneFrom(class USER_3 const & __ptr64) __ptr64
?W_CloneFrom@USER_3@@IEAAJAEBV1@@Z
; private: void __cdecl LM_SERVICE::W_ComputeOtherStatus(struct LM_SERVICE_OTHER_STATUS * __ptr64) __ptr64
?W_ComputeOtherStatus@LM_SERVICE@@AEAAXPEAULM_SERVICE_OTHER_STATUS@@@Z
; protected: virtual long __cdecl ENUM_CALLER_LM_OBJ::W_CreateNew(void) __ptr64
?W_CreateNew@ENUM_CALLER_LM_OBJ@@MEAAJXZ
; protected: virtual long __cdecl GROUP_1::W_CreateNew(void) __ptr64
?W_CreateNew@GROUP_1@@MEAAJXZ
; protected: virtual long __cdecl GROUP_MEMB::W_CreateNew(void) __ptr64
?W_CreateNew@GROUP_MEMB@@MEAAJXZ
; protected: virtual long __cdecl LSA_ACCOUNT::W_CreateNew(void) __ptr64
?W_CreateNew@LSA_ACCOUNT@@MEAAJXZ
; protected: virtual long __cdecl NEW_LM_OBJ::W_CreateNew(void) __ptr64
?W_CreateNew@NEW_LM_OBJ@@MEAAJXZ
; protected: virtual long __cdecl SHARE::W_CreateNew(void) __ptr64
?W_CreateNew@SHARE@@MEAAJXZ
; protected: virtual long __cdecl SHARE_1::W_CreateNew(void) __ptr64
?W_CreateNew@SHARE_1@@MEAAJXZ
; protected: virtual long __cdecl SHARE_2::W_CreateNew(void) __ptr64
?W_CreateNew@SHARE_2@@MEAAJXZ
; protected: virtual long __cdecl USER_11::W_CreateNew(void) __ptr64
?W_CreateNew@USER_11@@MEAAJXZ
; protected: virtual long __cdecl USER_2::W_CreateNew(void) __ptr64
?W_CreateNew@USER_2@@MEAAJXZ
; protected: virtual long __cdecl USER_3::W_CreateNew(void) __ptr64
?W_CreateNew@USER_3@@MEAAJXZ
; protected: virtual long __cdecl USER_MEMB::W_CreateNew(void) __ptr64
?W_CreateNew@USER_MEMB@@MEAAJXZ
; protected: long __cdecl ENUM_CALLER::W_GetInfo(void) __ptr64
?W_GetInfo@ENUM_CALLER@@IEAAJXZ
; private: void __cdecl LM_SERVICE::W_InterpretStatus(struct _SERVICE_INFO_2 const * __ptr64,enum LM_SERVICE_STATUS * __ptr64,struct LM_SERVICE_OTHER_STATUS * __ptr64) __ptr64
?W_InterpretStatus@LM_SERVICE@@AEAAXPEBU_SERVICE_INFO_2@@PEAW4LM_SERVICE_STATUS@@PEAULM_SERVICE_OTHER_STATUS@@@Z
; private: int __cdecl LM_SERVICE::W_IsWellKnownService(void)const  __ptr64
?W_IsWellKnownService@LM_SERVICE@@AEBAHXZ
; private: long __cdecl LM_SERVICE::W_QueryStatus(enum LM_SERVICE_STATUS * __ptr64,struct LM_SERVICE_OTHER_STATUS * __ptr64) __ptr64
?W_QueryStatus@LM_SERVICE@@AEAAJPEAW4LM_SERVICE_STATUS@@PEAULM_SERVICE_OTHER_STATUS@@@Z
; private: long __cdecl LM_SERVICE::W_ServiceControl(unsigned int,unsigned int) __ptr64
?W_ServiceControl@LM_SERVICE@@AEAAJII@Z
; private: long __cdecl LM_SERVICE::W_ServiceStart(unsigned short const * __ptr64) __ptr64
?W_ServiceStart@LM_SERVICE@@AEAAJPEBG@Z
; private: long __cdecl LOCATION::W_Set(unsigned short const * __ptr64,enum LOCATION_TYPE,int) __ptr64
?W_Set@LOCATION@@AEAAJPEBGW4LOCATION_TYPE@@H@Z
; private: long __cdecl GROUP_1::W_Write(void) __ptr64
?W_Write@GROUP_1@@AEAAJXZ
; private: long __cdecl SERVER_1::W_Write(void) __ptr64
?W_Write@SERVER_1@@AEAAJXZ
; private: long __cdecl SERVER_2::W_Write(void) __ptr64
?W_Write@SERVER_2@@AEAAJXZ
; protected: long __cdecl USER_2::W_Write(void) __ptr64
?W_Write@USER_2@@IEAAJXZ
; protected: long __cdecl USER_3::W_Write(void) __ptr64
?W_Write@USER_3@@IEAAJXZ
; private: long __cdecl WKSTA_USER_1::W_Write(void) __ptr64
?W_Write@WKSTA_USER_1@@AEAAJXZ
; public: long __cdecl NEW_LM_OBJ::Write(void) __ptr64
?Write@NEW_LM_OBJ@@QEAAJXZ
; public: virtual long __cdecl DEVICE::WriteInfo(void) __ptr64
?WriteInfo@DEVICE@@UEAAJXZ
; public: virtual long __cdecl DOMAIN::WriteInfo(void) __ptr64
?WriteInfo@DOMAIN@@UEAAJXZ
; public: long __cdecl NEW_LM_OBJ::WriteInfo(void) __ptr64
?WriteInfo@NEW_LM_OBJ@@QEAAJXZ
; public: virtual long __cdecl USER_MODALS::WriteInfo(void) __ptr64
?WriteInfo@USER_MODALS@@UEAAJXZ
; public: virtual long __cdecl USER_MODALS_3::WriteInfo(void) __ptr64
?WriteInfo@USER_MODALS_3@@UEAAJXZ
; public: long __cdecl NEW_LM_OBJ::WriteNew(void) __ptr64
?WriteNew@NEW_LM_OBJ@@QEAAJXZ
; public: void __cdecl OS_ACE::_DbgPrint(void)const  __ptr64
?_DbgPrint@OS_ACE@@QEBAXXZ
; public: void __cdecl OS_ACL::_DbgPrint(void)const  __ptr64
?_DbgPrint@OS_ACL@@QEBAXXZ
; public: void __cdecl OS_SECURITY_DESCRIPTOR::_DbgPrint(void)const  __ptr64
?_DbgPrint@OS_SECURITY_DESCRIPTOR@@QEBAXXZ
; public: void __cdecl OS_SID::_DbgPrint(void)const  __ptr64
?_DbgPrint@OS_SID@@QEBAXXZ
; private: void __cdecl LM_ENUM::_DeregisterIter(void) __ptr64
?_DeregisterIter@LM_ENUM@@AEAAXXZ
; private: void __cdecl LM_RESUME_ENUM::_DeregisterIter(void) __ptr64
?_DeregisterIter@LM_RESUME_ENUM@@AEAAXXZ
; private: void __cdecl LM_ENUM::_RegisterIter(void) __ptr64
?_RegisterIter@LM_ENUM@@AEAAXXZ
; private: void __cdecl LM_RESUME_ENUM::_RegisterIter(void) __ptr64
?_RegisterIter@LM_RESUME_ENUM@@AEAAXXZ
DestroySession
FreeArgv
I_MNetComputerNameCompare
I_MNetLogonControl
I_MNetNameCanonicalize
I_MNetNameCompare
I_MNetNameValidate
I_MNetPathCanonicalize
I_MNetPathCompare
I_MNetPathType
IsSlowTransport
MAllocMem
MDosPrintQEnum
MFreeMem
MNetAccessAdd
MNetAccessCheck
MNetAccessDel
MNetAccessEnum
MNetAccessGetInfo
MNetAccessGetUserPerms
MNetAccessSetInfo
MNetApiBufferAlloc
MNetApiBufferFree
MNetApiBufferReAlloc
MNetApiBufferSize
MNetAuditClear
MNetAuditRead
MNetAuditWrite
MNetCharDevControl
MNetCharDevGetInfo
MNetCharDevQEnum
MNetCharDevQGetInfo
MNetCharDevQPurge
MNetCharDevQPurgeSelf
MNetCharDevQSetInfo
MNetConfigGet
MNetConfigGetAll
MNetConfigSet
MNetConnectionEnum
MNetErrorLogClear
MNetErrorLogRead
MNetErrorLogWrite
MNetFileClose
MNetFileEnum
MNetFileGetInfo
MNetGetDCName
MNetGroupAdd
MNetGroupAddUser
MNetGroupDel
MNetGroupDelUser
MNetGroupEnum
MNetGroupGetInfo
MNetGroupGetUsers
MNetGroupSetInfo
MNetGroupSetUsers
MNetLocalGroupAddMember
MNetLogonEnum
MNetMessageBufferSend
MNetRemoteTOD
MNetServerDiskEnum
MNetServerEnum
MNetServerGetInfo
MNetServerSetInfo
MNetServiceControl
MNetServiceEnum
MNetServiceGetInfo
MNetServiceInstall
MNetSessionDel
MNetSessionEnum
MNetSessionGetInfo
MNetShareAdd
MNetShareCheck
MNetShareDel
MNetShareDelSticky
MNetShareEnum
MNetShareEnumSticky
MNetShareGetInfo
MNetShareSetInfo
MNetUseAdd
MNetUseDel
MNetUseEnum
MNetUseGetInfo
MNetUserAdd
MNetUserDel
MNetUserEnum
MNetUserGetGroups
MNetUserGetInfo
MNetUserModalsGet
MNetUserModalsSet
MNetUserPasswordSet
MNetUserSetGroups
MNetUserSetInfo
MNetWkstaGetInfo
MNetWkstaSetInfo
MNetWkstaSetUID
MNetWkstaUserEnum
MNetWkstaUserGetInfo
MakeArgvArgc
SetupNormalSession
SetupNullSession
SetupSession
SlowTransportWorkerThread
