; 
; Exports of file bprovider.DLL
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY bprovider.DLL
EXPORTS
; public: __cdecl CVdsHandleImpl<-1>::CVdsHandleImpl<-1>(void) __ptr64
??0?$CVdsHandleImpl@$0?0@@QEAA@XZ
; public: __cdecl CVdsHandleImpl<0>::CVdsHandleImpl<0>(void) __ptr64
??0?$CVdsHandleImpl@$0A@@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<char>::CVdsHeapPtr<char>(void) __ptr64
??0?$CVdsHeapPtr@D@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<unsigned char>::CVdsHeapPtr<unsigned char>(void) __ptr64
??0?$CVdsHeapPtr@E@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<unsigned short>::CVdsHeapPtr<unsigned short>(void) __ptr64
??0?$CVdsHeapPtr@G@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<struct _AUCTION_THREAD_PARAMETER>::CVdsHeapPtr<struct _AUCTION_THREAD_PARAMETER>(void) __ptr64
??0?$CVdsHeapPtr@U_AUCTION_THREAD_PARAMETER@@@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<struct _BOOT_ENTRY>::CVdsHeapPtr<struct _BOOT_ENTRY>(void) __ptr64
??0?$CVdsHeapPtr@U_BOOT_ENTRY@@@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<struct _DRIVE_LAYOUT_INFORMATION_EX>::CVdsHeapPtr<struct _DRIVE_LAYOUT_INFORMATION_EX>(void) __ptr64
??0?$CVdsHeapPtr@U_DRIVE_LAYOUT_INFORMATION_EX@@@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<struct _FILE_PATH>::CVdsHeapPtr<struct _FILE_PATH>(void) __ptr64
??0?$CVdsHeapPtr@U_FILE_PATH@@@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W>::CVdsHeapPtr<struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W>(void) __ptr64
??0?$CVdsHeapPtr@U_SP_DEVICE_INTERFACE_DETAIL_DATA_W@@@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<struct _VDS_DRIVE_LAYOUT_INFORMATION_EX>::CVdsHeapPtr<struct _VDS_DRIVE_LAYOUT_INFORMATION_EX>(void) __ptr64
??0?$CVdsHeapPtr@U_VDS_DRIVE_LAYOUT_INFORMATION_EX@@@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<struct _VOLMGR_HIDDEN_VOLUMES>::CVdsHeapPtr<struct _VOLMGR_HIDDEN_VOLUMES>(void) __ptr64
??0?$CVdsHeapPtr@U_VOLMGR_HIDDEN_VOLUMES@@@@QEAA@XZ
; public: __cdecl CVdsPtr<char>::CVdsPtr<char>(void) __ptr64
??0?$CVdsPtr@D@@QEAA@XZ
; public: __cdecl CVdsPtr<unsigned char>::CVdsPtr<unsigned char>(void) __ptr64
??0?$CVdsPtr@E@@QEAA@XZ
; public: __cdecl CVdsPtr<unsigned short>::CVdsPtr<unsigned short>(void) __ptr64
??0?$CVdsPtr@G@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _AUCTION_THREAD_PARAMETER>::CVdsPtr<struct _AUCTION_THREAD_PARAMETER>(void) __ptr64
??0?$CVdsPtr@U_AUCTION_THREAD_PARAMETER@@@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _BOOT_ENTRY>::CVdsPtr<struct _BOOT_ENTRY>(void) __ptr64
??0?$CVdsPtr@U_BOOT_ENTRY@@@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _DRIVE_LAYOUT_INFORMATION_EX>::CVdsPtr<struct _DRIVE_LAYOUT_INFORMATION_EX>(void) __ptr64
??0?$CVdsPtr@U_DRIVE_LAYOUT_INFORMATION_EX@@@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _FILE_PATH>::CVdsPtr<struct _FILE_PATH>(void) __ptr64
??0?$CVdsPtr@U_FILE_PATH@@@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W>::CVdsPtr<struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W>(void) __ptr64
??0?$CVdsPtr@U_SP_DEVICE_INTERFACE_DETAIL_DATA_W@@@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _VDS_DRIVE_LAYOUT_INFORMATION_EX>::CVdsPtr<struct _VDS_DRIVE_LAYOUT_INFORMATION_EX>(void) __ptr64
??0?$CVdsPtr@U_VDS_DRIVE_LAYOUT_INFORMATION_EX@@@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _VOLMGR_HIDDEN_VOLUMES>::CVdsPtr<struct _VOLMGR_HIDDEN_VOLUMES>(void) __ptr64
??0?$CVdsPtr@U_VOLMGR_HIDDEN_VOLUMES@@@@QEAA@XZ
; public: __cdecl CPrvEnumObject::CPrvEnumObject(void) __ptr64
??0CPrvEnumObject@@QEAA@XZ
; public: __cdecl CVdsCriticalSection::CVdsCriticalSection(struct _RTL_CRITICAL_SECTION * __ptr64) __ptr64
??0CVdsCriticalSection@@QEAA@PEAU_RTL_CRITICAL_SECTION@@@Z
; public: __cdecl CVdsPnPNotificationBase::CVdsPnPNotificationBase(void) __ptr64
??0CVdsPnPNotificationBase@@QEAA@XZ
; public: __cdecl CVdsStructuredExceptionTranslator::CVdsStructuredExceptionTranslator(void) __ptr64
??0CVdsStructuredExceptionTranslator@@QEAA@XZ
; public: __cdecl CVdsUnlockIt::CVdsUnlockIt(long & __ptr64) __ptr64
??0CVdsUnlockIt@@QEAA@AEAJ@Z
; public: __cdecl CVdsHandleImpl<-1>::~CVdsHandleImpl<-1>(void) __ptr64
??1?$CVdsHandleImpl@$0?0@@QEAA@XZ
; public: __cdecl CVdsHandleImpl<0>::~CVdsHandleImpl<0>(void) __ptr64
??1?$CVdsHandleImpl@$0A@@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<char>::~CVdsHeapPtr<char>(void) __ptr64
??1?$CVdsHeapPtr@D@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<unsigned char>::~CVdsHeapPtr<unsigned char>(void) __ptr64
??1?$CVdsHeapPtr@E@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<unsigned short>::~CVdsHeapPtr<unsigned short>(void) __ptr64
??1?$CVdsHeapPtr@G@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<struct _AUCTION_THREAD_PARAMETER>::~CVdsHeapPtr<struct _AUCTION_THREAD_PARAMETER>(void) __ptr64
??1?$CVdsHeapPtr@U_AUCTION_THREAD_PARAMETER@@@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<struct _BOOT_ENTRY>::~CVdsHeapPtr<struct _BOOT_ENTRY>(void) __ptr64
??1?$CVdsHeapPtr@U_BOOT_ENTRY@@@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<struct _DRIVE_LAYOUT_INFORMATION_EX>::~CVdsHeapPtr<struct _DRIVE_LAYOUT_INFORMATION_EX>(void) __ptr64
??1?$CVdsHeapPtr@U_DRIVE_LAYOUT_INFORMATION_EX@@@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<struct _FILE_PATH>::~CVdsHeapPtr<struct _FILE_PATH>(void) __ptr64
??1?$CVdsHeapPtr@U_FILE_PATH@@@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W>::~CVdsHeapPtr<struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W>(void) __ptr64
??1?$CVdsHeapPtr@U_SP_DEVICE_INTERFACE_DETAIL_DATA_W@@@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<struct _VDS_DRIVE_LAYOUT_INFORMATION_EX>::~CVdsHeapPtr<struct _VDS_DRIVE_LAYOUT_INFORMATION_EX>(void) __ptr64
??1?$CVdsHeapPtr@U_VDS_DRIVE_LAYOUT_INFORMATION_EX@@@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<struct _VOLMGR_HIDDEN_VOLUMES>::~CVdsHeapPtr<struct _VOLMGR_HIDDEN_VOLUMES>(void) __ptr64
??1?$CVdsHeapPtr@U_VOLMGR_HIDDEN_VOLUMES@@@@QEAA@XZ
; public: __cdecl CVdsPtr<char>::~CVdsPtr<char>(void) __ptr64
??1?$CVdsPtr@D@@QEAA@XZ
; public: __cdecl CVdsPtr<unsigned char>::~CVdsPtr<unsigned char>(void) __ptr64
??1?$CVdsPtr@E@@QEAA@XZ
; public: __cdecl CVdsPtr<unsigned short>::~CVdsPtr<unsigned short>(void) __ptr64
??1?$CVdsPtr@G@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _AUCTION_THREAD_PARAMETER>::~CVdsPtr<struct _AUCTION_THREAD_PARAMETER>(void) __ptr64
??1?$CVdsPtr@U_AUCTION_THREAD_PARAMETER@@@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _BOOT_ENTRY>::~CVdsPtr<struct _BOOT_ENTRY>(void) __ptr64
??1?$CVdsPtr@U_BOOT_ENTRY@@@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _DRIVE_LAYOUT_INFORMATION_EX>::~CVdsPtr<struct _DRIVE_LAYOUT_INFORMATION_EX>(void) __ptr64
??1?$CVdsPtr@U_DRIVE_LAYOUT_INFORMATION_EX@@@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _FILE_PATH>::~CVdsPtr<struct _FILE_PATH>(void) __ptr64
??1?$CVdsPtr@U_FILE_PATH@@@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W>::~CVdsPtr<struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W>(void) __ptr64
??1?$CVdsPtr@U_SP_DEVICE_INTERFACE_DETAIL_DATA_W@@@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _VDS_DRIVE_LAYOUT_INFORMATION_EX>::~CVdsPtr<struct _VDS_DRIVE_LAYOUT_INFORMATION_EX>(void) __ptr64
??1?$CVdsPtr@U_VDS_DRIVE_LAYOUT_INFORMATION_EX@@@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _VOLMGR_HIDDEN_VOLUMES>::~CVdsPtr<struct _VOLMGR_HIDDEN_VOLUMES>(void) __ptr64
??1?$CVdsPtr@U_VOLMGR_HIDDEN_VOLUMES@@@@QEAA@XZ
; public: __cdecl CPrvEnumObject::~CPrvEnumObject(void) __ptr64
??1CPrvEnumObject@@QEAA@XZ
; public: __cdecl CVdsCriticalSection::~CVdsCriticalSection(void) __ptr64
??1CVdsCriticalSection@@QEAA@XZ
; public: __cdecl CVdsDebugLog::~CVdsDebugLog(void) __ptr64
??1CVdsDebugLog@@QEAA@XZ
; public: __cdecl CVdsPnPNotificationBase::~CVdsPnPNotificationBase(void) __ptr64
??1CVdsPnPNotificationBase@@QEAA@XZ
; public: __cdecl CVdsStructuredExceptionTranslator::~CVdsStructuredExceptionTranslator(void) __ptr64
??1CVdsStructuredExceptionTranslator@@QEAA@XZ
; public: __cdecl CVdsUnlockIt::~CVdsUnlockIt(void) __ptr64
??1CVdsUnlockIt@@QEAA@XZ
; public: void * __ptr64 __cdecl CVdsHandleImpl<0>::operator=(void * __ptr64) __ptr64
??4?$CVdsHandleImpl@$0A@@@QEAAPEAXPEAX@Z
; public: char * __ptr64 __cdecl CVdsHeapPtr<char>::operator=(char * __ptr64) __ptr64
??4?$CVdsHeapPtr@D@@QEAAPEADPEAD@Z
; public: unsigned char * __ptr64 __cdecl CVdsHeapPtr<unsigned char>::operator=(unsigned char * __ptr64) __ptr64
??4?$CVdsHeapPtr@E@@QEAAPEAEPEAE@Z
; public: unsigned short * __ptr64 __cdecl CVdsHeapPtr<unsigned short>::operator=(unsigned short * __ptr64) __ptr64
??4?$CVdsHeapPtr@G@@QEAAPEAGPEAG@Z
; public: struct _AUCTION_THREAD_PARAMETER * __ptr64 __cdecl CVdsHeapPtr<struct _AUCTION_THREAD_PARAMETER>::operator=(struct _AUCTION_THREAD_PARAMETER * __ptr64) __ptr64
??4?$CVdsHeapPtr@U_AUCTION_THREAD_PARAMETER@@@@QEAAPEAU_AUCTION_THREAD_PARAMETER@@PEAU1@@Z
; public: struct _BOOT_ENTRY * __ptr64 __cdecl CVdsHeapPtr<struct _BOOT_ENTRY>::operator=(struct _BOOT_ENTRY * __ptr64) __ptr64
??4?$CVdsHeapPtr@U_BOOT_ENTRY@@@@QEAAPEAU_BOOT_ENTRY@@PEAU1@@Z
; public: struct _FILE_PATH * __ptr64 __cdecl CVdsHeapPtr<struct _FILE_PATH>::operator=(struct _FILE_PATH * __ptr64) __ptr64
??4?$CVdsHeapPtr@U_FILE_PATH@@@@QEAAPEAU_FILE_PATH@@PEAU1@@Z
; public: struct _VDS_DRIVE_LAYOUT_INFORMATION_EX * __ptr64 __cdecl CVdsHeapPtr<struct _VDS_DRIVE_LAYOUT_INFORMATION_EX>::operator=(struct _VDS_DRIVE_LAYOUT_INFORMATION_EX * __ptr64) __ptr64
??4?$CVdsHeapPtr@U_VDS_DRIVE_LAYOUT_INFORMATION_EX@@@@QEAAPEAU_VDS_DRIVE_LAYOUT_INFORMATION_EX@@PEAU1@@Z
; public: bool __cdecl CVdsHandleImpl<0>::operator==(void * __ptr64)const  __ptr64
??8?$CVdsHandleImpl@$0A@@@QEBA_NPEAX@Z
; public: bool __cdecl CVdsPtr<char>::operator==(char * __ptr64)const  __ptr64
??8?$CVdsPtr@D@@QEBA_NPEAD@Z
; public: bool __cdecl CVdsPtr<unsigned char>::operator==(unsigned char * __ptr64)const  __ptr64
??8?$CVdsPtr@E@@QEBA_NPEAE@Z
; public: bool __cdecl CVdsPtr<unsigned short>::operator==(unsigned short * __ptr64)const  __ptr64
??8?$CVdsPtr@G@@QEBA_NPEAG@Z
; public: bool __cdecl CVdsPtr<struct _BOOT_ENTRY>::operator==(struct _BOOT_ENTRY * __ptr64)const  __ptr64
??8?$CVdsPtr@U_BOOT_ENTRY@@@@QEBA_NPEAU_BOOT_ENTRY@@@Z
; public: bool __cdecl CVdsPtr<struct _FILE_PATH>::operator==(struct _FILE_PATH * __ptr64)const  __ptr64
??8?$CVdsPtr@U_FILE_PATH@@@@QEBA_NPEAU_FILE_PATH@@@Z
; public: bool __cdecl CVdsHandleImpl<0>::operator!=(void * __ptr64)const  __ptr64
??9?$CVdsHandleImpl@$0A@@@QEBA_NPEAX@Z
; public: bool __cdecl CVdsPtr<unsigned char>::operator!=(unsigned char * __ptr64)const  __ptr64
??9?$CVdsPtr@E@@QEBA_NPEAE@Z
; public: bool __cdecl CVdsPtr<unsigned short>::operator!=(unsigned short * __ptr64)const  __ptr64
??9?$CVdsPtr@G@@QEBA_NPEAG@Z
; public: bool __cdecl CVdsPtr<struct _AUCTION_THREAD_PARAMETER>::operator!=(struct _AUCTION_THREAD_PARAMETER * __ptr64)const  __ptr64
??9?$CVdsPtr@U_AUCTION_THREAD_PARAMETER@@@@QEBA_NPEAU_AUCTION_THREAD_PARAMETER@@@Z
; public: char & __ptr64 __cdecl CVdsPtr<char>::operator[](unsigned long) __ptr64
??A?$CVdsPtr@D@@QEAAAEADK@Z
; public: __cdecl CVdsHandleImpl<-1>::operator void * __ptr64(void) __ptr64
??B?$CVdsHandleImpl@$0?0@@QEAAPEAXXZ
; public: __cdecl CVdsHandleImpl<0>::operator void * __ptr64(void) __ptr64
??B?$CVdsHandleImpl@$0A@@@QEAAPEAXXZ
; public: __cdecl CVdsPtr<char>::operator char * __ptr64(void)const  __ptr64
??B?$CVdsPtr@D@@QEBAPEADXZ
; public: __cdecl CVdsPtr<unsigned char>::operator unsigned char * __ptr64(void)const  __ptr64
??B?$CVdsPtr@E@@QEBAPEAEXZ
; public: __cdecl CVdsPtr<unsigned short>::operator unsigned short * __ptr64(void)const  __ptr64
??B?$CVdsPtr@G@@QEBAPEAGXZ
; public: __cdecl CVdsPtr<struct _AUCTION_THREAD_PARAMETER>::operator struct _AUCTION_THREAD_PARAMETER * __ptr64(void)const  __ptr64
??B?$CVdsPtr@U_AUCTION_THREAD_PARAMETER@@@@QEBAPEAU_AUCTION_THREAD_PARAMETER@@XZ
; public: __cdecl CVdsPtr<struct _DRIVE_LAYOUT_INFORMATION_EX>::operator struct _DRIVE_LAYOUT_INFORMATION_EX * __ptr64(void)const  __ptr64
??B?$CVdsPtr@U_DRIVE_LAYOUT_INFORMATION_EX@@@@QEBAPEAU_DRIVE_LAYOUT_INFORMATION_EX@@XZ
; public: __cdecl CVdsPtr<struct _FILE_PATH>::operator struct _FILE_PATH * __ptr64(void)const  __ptr64
??B?$CVdsPtr@U_FILE_PATH@@@@QEBAPEAU_FILE_PATH@@XZ
; public: __cdecl CVdsPtr<struct _VDS_DRIVE_LAYOUT_INFORMATION_EX>::operator struct _VDS_DRIVE_LAYOUT_INFORMATION_EX * __ptr64(void)const  __ptr64
??B?$CVdsPtr@U_VDS_DRIVE_LAYOUT_INFORMATION_EX@@@@QEBAPEAU_VDS_DRIVE_LAYOUT_INFORMATION_EX@@XZ
; public: struct _AUCTION_THREAD_PARAMETER * __ptr64 __cdecl CVdsPtr<struct _AUCTION_THREAD_PARAMETER>::operator->(void)const  __ptr64
??C?$CVdsPtr@U_AUCTION_THREAD_PARAMETER@@@@QEBAPEAU_AUCTION_THREAD_PARAMETER@@XZ
; public: struct _BOOT_ENTRY * __ptr64 __cdecl CVdsPtr<struct _BOOT_ENTRY>::operator->(void)const  __ptr64
??C?$CVdsPtr@U_BOOT_ENTRY@@@@QEBAPEAU_BOOT_ENTRY@@XZ
; public: struct _DRIVE_LAYOUT_INFORMATION_EX * __ptr64 __cdecl CVdsPtr<struct _DRIVE_LAYOUT_INFORMATION_EX>::operator->(void)const  __ptr64
??C?$CVdsPtr@U_DRIVE_LAYOUT_INFORMATION_EX@@@@QEBAPEAU_DRIVE_LAYOUT_INFORMATION_EX@@XZ
; public: struct _FILE_PATH * __ptr64 __cdecl CVdsPtr<struct _FILE_PATH>::operator->(void)const  __ptr64
??C?$CVdsPtr@U_FILE_PATH@@@@QEBAPEAU_FILE_PATH@@XZ
; public: struct _VDS_DRIVE_LAYOUT_INFORMATION_EX * __ptr64 __cdecl CVdsPtr<struct _VDS_DRIVE_LAYOUT_INFORMATION_EX>::operator->(void)const  __ptr64
??C?$CVdsPtr@U_VDS_DRIVE_LAYOUT_INFORMATION_EX@@@@QEBAPEAU_VDS_DRIVE_LAYOUT_INFORMATION_EX@@XZ
; public: void * __ptr64 * __ptr64 __cdecl CVdsHandleImpl<-1>::operator&(void) __ptr64
??I?$CVdsHandleImpl@$0?0@@QEAAPEAPEAXXZ
; public: unsigned short * __ptr64 * __ptr64 __cdecl CVdsPtr<unsigned short>::operator&(void) __ptr64
??I?$CVdsPtr@G@@QEAAPEAPEAGXZ
; public: struct _DRIVE_LAYOUT_INFORMATION_EX * __ptr64 * __ptr64 __cdecl CVdsPtr<struct _DRIVE_LAYOUT_INFORMATION_EX>::operator&(void) __ptr64
??I?$CVdsPtr@U_DRIVE_LAYOUT_INFORMATION_EX@@@@QEAAPEAPEAU_DRIVE_LAYOUT_INFORMATION_EX@@XZ
; public: struct _VDS_DRIVE_LAYOUT_INFORMATION_EX * __ptr64 * __ptr64 __cdecl CVdsPtr<struct _VDS_DRIVE_LAYOUT_INFORMATION_EX>::operator&(void) __ptr64
??I?$CVdsPtr@U_VDS_DRIVE_LAYOUT_INFORMATION_EX@@@@QEAAPEAPEAU_VDS_DRIVE_LAYOUT_INFORMATION_EX@@XZ
; public: void __cdecl CVdsAsyncObjectBase::AllowCancel(void) __ptr64
?AllowCancel@CVdsAsyncObjectBase@@QEAAXXZ
; public: void __cdecl CVdsPtr<unsigned short>::Attach(unsigned short * __ptr64) __ptr64
?Attach@?$CVdsPtr@G@@QEAAXPEAG@Z
; public: void __cdecl CVdsPtr<struct _DRIVE_LAYOUT_INFORMATION_EX>::Attach(struct _DRIVE_LAYOUT_INFORMATION_EX * __ptr64) __ptr64
?Attach@?$CVdsPtr@U_DRIVE_LAYOUT_INFORMATION_EX@@@@QEAAXPEAU_DRIVE_LAYOUT_INFORMATION_EX@@@Z
; public: void __cdecl CVdsPtr<struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W>::Attach(struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W * __ptr64) __ptr64
?Attach@?$CVdsPtr@U_SP_DEVICE_INTERFACE_DETAIL_DATA_W@@@@QEAAXPEAU_SP_DEVICE_INTERFACE_DETAIL_DATA_W@@@Z
; public: void __cdecl CVdsPtr<struct _VDS_DRIVE_LAYOUT_INFORMATION_EX>::Attach(struct _VDS_DRIVE_LAYOUT_INFORMATION_EX * __ptr64) __ptr64
?Attach@?$CVdsPtr@U_VDS_DRIVE_LAYOUT_INFORMATION_EX@@@@QEAAXPEAU_VDS_DRIVE_LAYOUT_INFORMATION_EX@@@Z
; public: void __cdecl CVdsPtr<struct _VOLMGR_HIDDEN_VOLUMES>::Attach(struct _VOLMGR_HIDDEN_VOLUMES * __ptr64) __ptr64
?Attach@?$CVdsPtr@U_VOLMGR_HIDDEN_VOLUMES@@@@QEAAXPEAU_VOLMGR_HIDDEN_VOLUMES@@@Z
; public: void __cdecl CVdsHandleImpl<-1>::Close(void) __ptr64
?Close@?$CVdsHandleImpl@$0?0@@QEAAXXZ
; public: void * __ptr64 __cdecl CVdsHandleImpl<-1>::Detach(void) __ptr64
?Detach@?$CVdsHandleImpl@$0?0@@QEAAPEAXXZ
; public: unsigned short * __ptr64 __cdecl CVdsPtr<unsigned short>::Detach(void) __ptr64
?Detach@?$CVdsPtr@G@@QEAAPEAGXZ
; public: struct _AUCTION_THREAD_PARAMETER * __ptr64 __cdecl CVdsPtr<struct _AUCTION_THREAD_PARAMETER>::Detach(void) __ptr64
?Detach@?$CVdsPtr@U_AUCTION_THREAD_PARAMETER@@@@QEAAPEAU_AUCTION_THREAD_PARAMETER@@XZ
; public: struct _DRIVE_LAYOUT_INFORMATION_EX * __ptr64 __cdecl CVdsPtr<struct _DRIVE_LAYOUT_INFORMATION_EX>::Detach(void) __ptr64
?Detach@?$CVdsPtr@U_DRIVE_LAYOUT_INFORMATION_EX@@@@QEAAPEAU_DRIVE_LAYOUT_INFORMATION_EX@@XZ
; public: struct _VDS_DRIVE_LAYOUT_INFORMATION_EX * __ptr64 __cdecl CVdsPtr<struct _VDS_DRIVE_LAYOUT_INFORMATION_EX>::Detach(void) __ptr64
?Detach@?$CVdsPtr@U_VDS_DRIVE_LAYOUT_INFORMATION_EX@@@@QEAAPEAU_VDS_DRIVE_LAYOUT_INFORMATION_EX@@XZ
; public: void __cdecl CVdsAsyncObjectBase::DisallowCancel(void) __ptr64
?DisallowCancel@CVdsAsyncObjectBase@@QEAAXXZ
; public: enum __MIDL___MIDL_itf_vdsswprv_0000_0002  __cdecl CVdsAsyncObjectBase::GetOutputType(void) __ptr64
?GetOutputType@CVdsAsyncObjectBase@@QEAA?AW4__MIDL___MIDL_itf_vdsswprv_0000_0002@@XZ
; public: int __cdecl CVdsAsyncObjectBase::IsCancelRequested(void) __ptr64
?IsCancelRequested@CVdsAsyncObjectBase@@QEAAHXZ
; public: void __cdecl CVdsAsyncObjectBase::SetOutputType(enum __MIDL___MIDL_itf_vdsswprv_0000_0002) __ptr64
?SetOutputType@CVdsAsyncObjectBase@@QEAAXW4__MIDL___MIDL_itf_vdsswprv_0000_0002@@@Z
; public: void __cdecl CPrvEnumObject::SetPositionToLast(void) __ptr64
?SetPositionToLast@CPrvEnumObject@@QEAAXXZ
; public: int __cdecl CVdsDebugLog::TracingLogEnabled(void) __ptr64
?TracingLogEnabled@CVdsDebugLog@@QEAAHXZ
; public: void __cdecl CVdsAsyncObjectBase::ZeroAsyncOut(void) __ptr64
?ZeroAsyncOut@CVdsAsyncObjectBase@@QEAAXXZ
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer
