; 
; 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
