; 
; Exports of file vdsutil.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY vdsutil.dll
EXPORTS
; public: __cdecl CVdsHandleImpl<-1>::CVdsHandleImpl<-1>(void) __ptr64
??0?$CVdsHandleImpl@$0?0@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<struct _MOUNTMGR_MOUNT_POINT>::CVdsHeapPtr<struct _MOUNTMGR_MOUNT_POINT>(void) __ptr64
??0?$CVdsHeapPtr@U_MOUNTMGR_MOUNT_POINT@@@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<struct _MOUNTMGR_MOUNT_POINTS>::CVdsHeapPtr<struct _MOUNTMGR_MOUNT_POINTS>(void) __ptr64
??0?$CVdsHeapPtr@U_MOUNTMGR_MOUNT_POINTS@@@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _MOUNTMGR_MOUNT_POINT>::CVdsPtr<struct _MOUNTMGR_MOUNT_POINT>(void) __ptr64
??0?$CVdsPtr@U_MOUNTMGR_MOUNT_POINT@@@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _MOUNTMGR_MOUNT_POINTS>::CVdsPtr<struct _MOUNTMGR_MOUNT_POINTS>(void) __ptr64
??0?$CVdsPtr@U_MOUNTMGR_MOUNT_POINTS@@@@QEAA@XZ
; public: __cdecl CPrvEnumObject::CPrvEnumObject(void) __ptr64
??0CPrvEnumObject@@QEAA@XZ
; public: __cdecl CVdsAsyncObjectBase::CVdsAsyncObjectBase(void) __ptr64
??0CVdsAsyncObjectBase@@QEAA@XZ
; public: __cdecl CVdsCallTracer::CVdsCallTracer(unsigned long,char const * __ptr64) __ptr64
??0CVdsCallTracer@@QEAA@KPEBD@Z
; public: __cdecl CVdsCriticalSection::CVdsCriticalSection(struct _RTL_CRITICAL_SECTION * __ptr64) __ptr64
??0CVdsCriticalSection@@QEAA@PEAU_RTL_CRITICAL_SECTION@@@Z
; public: __cdecl CVdsDebugLog::CVdsDebugLog(int) __ptr64
??0CVdsDebugLog@@QEAA@H@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 CVdsHeapPtr<struct _MOUNTMGR_MOUNT_POINT>::~CVdsHeapPtr<struct _MOUNTMGR_MOUNT_POINT>(void) __ptr64
??1?$CVdsHeapPtr@U_MOUNTMGR_MOUNT_POINT@@@@QEAA@XZ
; public: __cdecl CVdsHeapPtr<struct _MOUNTMGR_MOUNT_POINTS>::~CVdsHeapPtr<struct _MOUNTMGR_MOUNT_POINTS>(void) __ptr64
??1?$CVdsHeapPtr@U_MOUNTMGR_MOUNT_POINTS@@@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _MOUNTMGR_MOUNT_POINT>::~CVdsPtr<struct _MOUNTMGR_MOUNT_POINT>(void) __ptr64
??1?$CVdsPtr@U_MOUNTMGR_MOUNT_POINT@@@@QEAA@XZ
; public: __cdecl CVdsPtr<struct _MOUNTMGR_MOUNT_POINTS>::~CVdsPtr<struct _MOUNTMGR_MOUNT_POINTS>(void) __ptr64
??1?$CVdsPtr@U_MOUNTMGR_MOUNT_POINTS@@@@QEAA@XZ
; public: __cdecl CPrvEnumObject::~CPrvEnumObject(void) __ptr64
??1CPrvEnumObject@@QEAA@XZ
; public: __cdecl CVdsAsyncObjectBase::~CVdsAsyncObjectBase(void) __ptr64
??1CVdsAsyncObjectBase@@QEAA@XZ
; public: __cdecl CVdsCallTracer::~CVdsCallTracer(void) __ptr64
??1CVdsCallTracer@@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<-1>::operator=(void * __ptr64) __ptr64
??4?$CVdsHandleImpl@$0?0@@QEAAPEAXPEAX@Z
; public: struct _MOUNTMGR_MOUNT_POINT * __ptr64 __cdecl CVdsHeapPtr<struct _MOUNTMGR_MOUNT_POINT>::operator=(struct _MOUNTMGR_MOUNT_POINT * __ptr64) __ptr64
??4?$CVdsHeapPtr@U_MOUNTMGR_MOUNT_POINT@@@@QEAAPEAU_MOUNTMGR_MOUNT_POINT@@PEAU1@@Z
; public: struct _MOUNTMGR_MOUNT_POINTS * __ptr64 __cdecl CVdsHeapPtr<struct _MOUNTMGR_MOUNT_POINTS>::operator=(struct _MOUNTMGR_MOUNT_POINTS * __ptr64) __ptr64
??4?$CVdsHeapPtr@U_MOUNTMGR_MOUNT_POINTS@@@@QEAAPEAU_MOUNTMGR_MOUNT_POINTS@@PEAU1@@Z
; public: bool __cdecl CVdsHandleImpl<-1>::operator==(void * __ptr64)const  __ptr64
??8?$CVdsHandleImpl@$0?0@@QEBA_NPEAX@Z
; public: bool __cdecl CVdsPtr<struct _MOUNTMGR_MOUNT_POINT>::operator==(struct _MOUNTMGR_MOUNT_POINT * __ptr64)const  __ptr64
??8?$CVdsPtr@U_MOUNTMGR_MOUNT_POINT@@@@QEBA_NPEAU_MOUNTMGR_MOUNT_POINT@@@Z
; public: bool __cdecl CVdsPtr<struct _MOUNTMGR_MOUNT_POINTS>::operator==(struct _MOUNTMGR_MOUNT_POINTS * __ptr64)const  __ptr64
??8?$CVdsPtr@U_MOUNTMGR_MOUNT_POINTS@@@@QEBA_NPEAU_MOUNTMGR_MOUNT_POINTS@@@Z
; public: __cdecl CVdsHandleImpl<-1>::operator void * __ptr64(void) __ptr64
??B?$CVdsHandleImpl@$0?0@@QEAAPEAXXZ
; public: __cdecl CVdsPtr<struct _MOUNTMGR_MOUNT_POINT>::operator struct _MOUNTMGR_MOUNT_POINT * __ptr64(void)const  __ptr64
??B?$CVdsPtr@U_MOUNTMGR_MOUNT_POINT@@@@QEBAPEAU_MOUNTMGR_MOUNT_POINT@@XZ
; public: __cdecl CVdsPtr<struct _MOUNTMGR_MOUNT_POINTS>::operator struct _MOUNTMGR_MOUNT_POINTS * __ptr64(void)const  __ptr64
??B?$CVdsPtr@U_MOUNTMGR_MOUNT_POINTS@@@@QEBAPEAU_MOUNTMGR_MOUNT_POINTS@@XZ
; public: struct _MOUNTMGR_MOUNT_POINT * __ptr64 __cdecl CVdsPtr<struct _MOUNTMGR_MOUNT_POINT>::operator->(void)const  __ptr64
??C?$CVdsPtr@U_MOUNTMGR_MOUNT_POINT@@@@QEBAPEAU_MOUNTMGR_MOUNT_POINT@@XZ
; public: struct _MOUNTMGR_MOUNT_POINTS * __ptr64 __cdecl CVdsPtr<struct _MOUNTMGR_MOUNT_POINTS>::operator->(void)const  __ptr64
??C?$CVdsPtr@U_MOUNTMGR_MOUNT_POINTS@@@@QEBAPEAU_MOUNTMGR_MOUNT_POINTS@@XZ
; public: void * __ptr64 * __ptr64 __cdecl CVdsHandleImpl<-1>::operator&(void) __ptr64
??I?$CVdsHandleImpl@$0?0@@QEAAPEAPEAXXZ
; bool __cdecl operator<(struct _GUID const & __ptr64,struct _GUID const & __ptr64)
??M@YA_NAEBU_GUID@@0@Z
; unsigned long __cdecl AddEventSource(unsigned short * __ptr64,struct HINSTANCE__ * __ptr64)
?AddEventSource@@YAKPEAGPEAUHINSTANCE__@@@Z
; public: void __cdecl CVdsAsyncObjectBase::AllowCancel(void) __ptr64
?AllowCancel@CVdsAsyncObjectBase@@QEAAXXZ
; public: long __cdecl CPrvEnumObject::Append(struct IUnknown * __ptr64) __ptr64
?Append@CPrvEnumObject@@QEAAJPEAUIUnknown@@@Z
; long __cdecl AssignTempVolumeName(unsigned short * __ptr64,unsigned short * __ptr64 const)
?AssignTempVolumeName@@YAJPEAGQEAG@Z
; public: virtual long __cdecl CVdsAsyncObjectBase::Cancel(void) __ptr64
?Cancel@CVdsAsyncObjectBase@@UEAAJXZ
; public: void __cdecl CPrvEnumObject::Clear(void) __ptr64
?Clear@CPrvEnumObject@@QEAAXXZ
; public: virtual long __cdecl CPrvEnumObject::Clone(struct IEnumVdsObject * __ptr64 * __ptr64) __ptr64
?Clone@CPrvEnumObject@@UEAAJPEAPEAUIEnumVdsObject@@@Z
; void __cdecl CoFreeStringArray(unsigned short * __ptr64 * __ptr64,long)
?CoFreeStringArray@@YAXPEAPEAGJ@Z
; unsigned long __cdecl CreateDeviceInfoSet(unsigned short * __ptr64,void * __ptr64 * __ptr64,struct _SP_DEVINFO_DATA * __ptr64)
?CreateDeviceInfoSet@@YAKPEAGPEAPEAXPEAU_SP_DEVINFO_DATA@@@Z
; private: unsigned long __cdecl CVdsPnPNotificationBase::CreateListenThread(void) __ptr64
?CreateListenThread@CVdsPnPNotificationBase@@AEAAKXZ
; public: void * __ptr64 __cdecl CVdsHandleImpl<-1>::Detach(void) __ptr64
?Detach@?$CVdsHandleImpl@$0?0@@QEAAPEAXXZ
; public: void __cdecl CVdsAsyncObjectBase::DisallowCancel(void) __ptr64
?DisallowCancel@CVdsAsyncObjectBase@@QEAAXXZ
; void __cdecl GarbageCollectDriveLetters(void)
?GarbageCollectDriveLetters@@YAXXZ
; unsigned long __cdecl GetDeviceAndMediaType(void * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64)
?GetDeviceAndMediaType@@YAKPEAXPEAK1@Z
; unsigned long __cdecl GetDeviceLocation(void * __ptr64,struct _VDS_DISK_PROP * __ptr64)
?GetDeviceLocation@@YAKPEAXPEAU_VDS_DISK_PROP@@@Z
; unsigned long __cdecl GetDeviceName(void * __ptr64,int,unsigned short * __ptr64 const)
?GetDeviceName@@YAKPEAXHQEAG@Z
; unsigned long __cdecl GetDeviceNumber(void * __ptr64,struct _STORAGE_DEVICE_NUMBER * __ptr64)
?GetDeviceNumber@@YAKPEAXPEAU_STORAGE_DEVICE_NUMBER@@@Z
; unsigned long __cdecl GetDeviceRegistryProperty(unsigned long,unsigned long,unsigned char * __ptr64 * __ptr64,unsigned long)
?GetDeviceRegistryProperty@@YAKKKPEAPEAEK@Z
; unsigned long __cdecl GetDeviceRegistryProperty(void * __ptr64,struct _SP_DEVINFO_DATA * __ptr64,unsigned long,unsigned char * __ptr64 * __ptr64,unsigned long)
?GetDeviceRegistryProperty@@YAKPEAXPEAU_SP_DEVINFO_DATA@@KPEAPEAEK@Z
; unsigned long __cdecl GetDiskLayout(void * __ptr64,struct _DRIVE_LAYOUT_INFORMATION_EX * __ptr64 * __ptr64)
?GetDiskLayout@@YAKPEAXPEAPEAU_DRIVE_LAYOUT_INFORMATION_EX@@@Z
; unsigned long __cdecl GetInterfaceDetailData(void * __ptr64,struct _SP_DEVICE_INTERFACE_DATA * __ptr64,struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W * __ptr64 * __ptr64)
?GetInterfaceDetailData@@YAKPEAXPEAU_SP_DEVICE_INTERFACE_DATA@@PEAPEAU_SP_DEVICE_INTERFACE_DETAIL_DATA_W@@@Z
; unsigned long __cdecl GetIsRemovable(void * __ptr64,int * __ptr64)
?GetIsRemovable@@YAKPEAXPEAH@Z
; unsigned long __cdecl GetMediaGeometry(void * __ptr64,unsigned long,struct _DISK_GEOMETRY * __ptr64)
?GetMediaGeometry@@YAKPEAXKPEAU_DISK_GEOMETRY@@@Z
; unsigned long __cdecl GetMediaGeometry(void * __ptr64,struct _VDS_DISK_PROP * __ptr64)
?GetMediaGeometry@@YAKPEAXPEAU_VDS_DISK_PROP@@@Z
; public: enum __MIDL___MIDL_itf_vdscmlyr_0000_0002  __cdecl CVdsAsyncObjectBase::GetOutputType(void) __ptr64
?GetOutputType@CVdsAsyncObjectBase@@QEAA?AW4__MIDL___MIDL_itf_vdscmlyr_0000_0002@@XZ
; unsigned long __cdecl GetPartitionInformation(void * __ptr64,struct _PARTITION_INFORMATION_EX * __ptr64)
?GetPartitionInformation@@YAKPEAXPEAU_PARTITION_INFORMATION_EX@@@Z
; unsigned long __cdecl GetVolumeDiskExtentInfo(void * __ptr64,struct _VOLUME_DISK_EXTENTS * __ptr64 * __ptr64)
?GetVolumeDiskExtentInfo@@YAKPEAXPEAPEAU_VOLUME_DISK_EXTENTS@@@Z
; long __cdecl GetVolumeName(unsigned short * __ptr64,unsigned short * __ptr64)
?GetVolumeName@@YAJPEAG0@Z
; unsigned long __cdecl GetVolumeSize(unsigned short * __ptr64,unsigned __int64 * __ptr64)
?GetVolumeSize@@YAKPEAGPEA_K@Z
; public: struct HWND__ * __ptr64 __cdecl CVdsPnPNotificationBase::GetWindowHandle(void) __ptr64
?GetWindowHandle@CVdsPnPNotificationBase@@QEAAPEAUHWND__@@XZ
; protected: int __cdecl CVdsPnPNotificationBase::HasMatchingNotification(unsigned __int64,unsigned long) __ptr64
?HasMatchingNotification@CVdsPnPNotificationBase@@IEAAH_KK@Z
; public: static unsigned long __cdecl CVdsAsyncObjectBase::Initialize(void)
?Initialize@CVdsAsyncObjectBase@@SAKXZ
; public: unsigned long __cdecl CVdsPnPNotificationBase::Initialize(void) __ptr64
?Initialize@CVdsPnPNotificationBase@@QEAAKXZ
; unsigned long __cdecl InitializeSecurityDescriptor(unsigned long,void * __ptr64,struct _ACL * __ptr64 * __ptr64,void * __ptr64 * __ptr64,void * __ptr64 * __ptr64,void * __ptr64 * __ptr64)
?InitializeSecurityDescriptor@@YAKKPEAXPEAPEAU_ACL@@PEAPEAX22@Z
; public: int __cdecl CVdsAsyncObjectBase::IsCancelRequested(void) __ptr64
?IsCancelRequested@CVdsAsyncObjectBase@@QEAAHXZ
; int __cdecl IsDeviceFullyInstalled(unsigned short * __ptr64)
?IsDeviceFullyInstalled@@YAHPEAG@Z
; int __cdecl IsDiskClustered(void * __ptr64)
?IsDiskClustered@@YAHPEAX@Z
; public: int __cdecl CVdsAsyncObjectBase::IsFinished(void) __ptr64
?IsFinished@CVdsAsyncObjectBase@@QEAAHXZ
; long __cdecl IsLocalComputer(unsigned short * __ptr64)
?IsLocalComputer@@YAJPEAG@Z
; int __cdecl IsMediaPresent(void * __ptr64)
?IsMediaPresent@@YAHPEAX@Z
; int __cdecl IsNoAutoMount(void)
?IsNoAutoMount@@YAHXZ
; int __cdecl IsWinPE(void)
?IsWinPE@@YAHXZ
; unsigned long __cdecl LockDismountVolume(void * __ptr64,int)
?LockDismountVolume@@YAKPEAXH@Z
; unsigned long __cdecl LockVolume(void * __ptr64)
?LockVolume@@YAKPEAX@Z
; public: void __cdecl CVdsDebugLog::Log(unsigned long,unsigned long,int,char * __ptr64,char * __ptr64) __ptr64
?Log@CVdsDebugLog@@QEAAXKKHPEAD0@Z
; public: void __cdecl CVdsDebugLog::Log(unsigned long,unsigned long,int,char * __ptr64,...) __ptr64
?Log@CVdsDebugLog@@QEAAXKKHPEADZZ
; void __cdecl LogError(unsigned short * __ptr64,unsigned long,unsigned long,void * __ptr64,unsigned long,unsigned long,unsigned short * __ptr64,char * __ptr64)
?LogError@@YAXPEAGKKPEAXKK0PEAD@Z
; void __cdecl LogEvent(unsigned short * __ptr64,unsigned long,unsigned short,unsigned long,void * __ptr64,unsigned long,unsigned short * __ptr64 * __ptr64 const)
?LogEvent@@YAXPEAGKGKPEAXKQEAPEAG@Z
; void __cdecl LogInfo(unsigned short * __ptr64,unsigned long,unsigned long,void * __ptr64,unsigned long,unsigned short * __ptr64,char * __ptr64)
?LogInfo@@YAXPEAGKKPEAXK0PEAD@Z
; void __cdecl LogWarning(unsigned short * __ptr64,unsigned long,unsigned long,void * __ptr64,unsigned long,unsigned long,unsigned short * __ptr64,char * __ptr64)
?LogWarning@@YAXPEAGKKPEAXKK0PEAD@Z
; unsigned long __cdecl MountVolume(unsigned short * __ptr64)
?MountVolume@@YAKPEAG@Z
; public: virtual long __cdecl CPrvEnumObject::Next(unsigned long,struct IUnknown * __ptr64 * __ptr64,unsigned long * __ptr64) __ptr64
?Next@CPrvEnumObject@@UEAAJKPEAPEAUIUnknown@@PEAK@Z
; private: unsigned long __cdecl CVdsPnPNotificationBase::NotificationThread(void * __ptr64) __ptr64
?NotificationThread@CVdsPnPNotificationBase@@AEAAKPEAX@Z
; private: static unsigned long __cdecl CVdsPnPNotificationBase::NotificationThreadEntry(void * __ptr64)
?NotificationThreadEntry@CVdsPnPNotificationBase@@CAKPEAX@Z
; unsigned long __cdecl OpenDevice(unsigned short * __ptr64,unsigned long,void * __ptr64 * __ptr64)
?OpenDevice@@YAKPEAGKPEAPEAX@Z
; long __cdecl QueryObjects(struct IUnknown * __ptr64,struct IEnumVdsObject * __ptr64 * __ptr64,struct _RTL_CRITICAL_SECTION & __ptr64)
?QueryObjects@@YAJPEAUIUnknown@@PEAPEAUIEnumVdsObject@@AEAU_RTL_CRITICAL_SECTION@@@Z
; public: virtual long __cdecl CVdsAsyncObjectBase::QueryStatus(long * __ptr64,unsigned long * __ptr64) __ptr64
?QueryStatus@CVdsAsyncObjectBase@@UEAAJPEAJPEAK@Z
; public: unsigned long __cdecl CVdsPnPNotificationBase::Register(struct _NotificationListeningRequest * __ptr64,unsigned long) __ptr64
?Register@CVdsPnPNotificationBase@@QEAAKPEAU_NotificationListeningRequest@@K@Z
; public: unsigned long __cdecl CVdsPnPNotificationBase::RegisterHandle(void * __ptr64,void * __ptr64 * __ptr64) __ptr64
?RegisterHandle@CVdsPnPNotificationBase@@QEAAKPEAXPEAPEAX@Z
; long __cdecl RegisterProvider(struct _GUID,struct _GUID,unsigned short * __ptr64,enum _VDS_PROVIDER_TYPE,unsigned short * __ptr64,unsigned short * __ptr64,struct _GUID)
?RegisterProvider@@YAJU_GUID@@0PEAGW4_VDS_PROVIDER_TYPE@@110@Z
; unsigned long __cdecl RemoveEventSource(unsigned short * __ptr64)
?RemoveEventSource@@YAKPEAG@Z
; void __cdecl RemoveTempVolumeName(unsigned short * __ptr64,unsigned short * __ptr64)
?RemoveTempVolumeName@@YAXPEAG0@Z
; public: virtual long __cdecl CPrvEnumObject::Reset(void) __ptr64
?Reset@CPrvEnumObject@@UEAAJXZ
; public: void __cdecl CVdsAsyncObjectBase::SetCompletionStatus(long,unsigned long) __ptr64
?SetCompletionStatus@CVdsAsyncObjectBase@@QEAAXJK@Z
; unsigned long __cdecl SetDiskLayout(void * __ptr64,struct _DRIVE_LAYOUT_INFORMATION_EX * __ptr64)
?SetDiskLayout@@YAKPEAXPEAU_DRIVE_LAYOUT_INFORMATION_EX@@@Z
; public: void __cdecl CVdsAsyncObjectBase::SetOutputType(enum __MIDL___MIDL_itf_vdscmlyr_0000_0002) __ptr64
?SetOutputType@CVdsAsyncObjectBase@@QEAAXW4__MIDL___MIDL_itf_vdscmlyr_0000_0002@@@Z
; public: void __cdecl CPrvEnumObject::SetPositionToLast(void) __ptr64
?SetPositionToLast@CPrvEnumObject@@QEAAXXZ
; public: void __cdecl CVdsAsyncObjectBase::Signal(void) __ptr64
?Signal@CVdsAsyncObjectBase@@QEAAXXZ
; public: virtual long __cdecl CPrvEnumObject::Skip(unsigned long) __ptr64
?Skip@CPrvEnumObject@@UEAAJK@Z
; public: int __cdecl CVdsDebugLog::TracingLogEnabled(void) __ptr64
?TracingLogEnabled@CVdsDebugLog@@QEAAHXZ
; public: static void __cdecl CVdsAsyncObjectBase::Uninitialize(void)
?Uninitialize@CVdsAsyncObjectBase@@SAXXZ
; public: void __cdecl CVdsPnPNotificationBase::Uninitialize(void) __ptr64
?Uninitialize@CVdsPnPNotificationBase@@QEAAXXZ
; public: void __cdecl CVdsPnPNotificationBase::Unregister(struct _NotificationListeningRequest * __ptr64) __ptr64
?Unregister@CVdsPnPNotificationBase@@QEAAXPEAU_NotificationListeningRequest@@@Z
; public: void __cdecl CVdsPnPNotificationBase::UnregisterHandle(void * __ptr64) __ptr64
?UnregisterHandle@CVdsPnPNotificationBase@@QEAAXPEAX@Z
; long __cdecl UnregisterProvider(struct _GUID)
?UnregisterProvider@@YAJU_GUID@@@Z
; unsigned short * __ptr64 __cdecl VdsAllocateEmptyString(void)
?VdsAllocateEmptyString@@YAPEAGXZ
; void * __ptr64 __cdecl VdsHeapAlloc(void * __ptr64,unsigned long,unsigned __int64)
?VdsHeapAlloc@@YAPEAXPEAXK_K@Z
; int __cdecl VdsHeapFree(void * __ptr64,unsigned long,void * __ptr64)
?VdsHeapFree@@YAHPEAXK0@Z
; unsigned long __cdecl VdsInitializeCriticalSection(struct _RTL_CRITICAL_SECTION * __ptr64)
?VdsInitializeCriticalSection@@YAKPEAU_RTL_CRITICAL_SECTION@@@Z
; public: static void __cdecl CVdsStructuredExceptionTranslator::VdsSeTranslator(unsigned int,struct _EXCEPTION_POINTERS * __ptr64)
?VdsSeTranslator@CVdsStructuredExceptionTranslator@@SAXIPEAU_EXCEPTION_POINTERS@@@Z
; void __cdecl VdsTrace(unsigned long,char * __ptr64,...)
?VdsTrace@@YAXKPEADZZ
; void __cdecl VdsTraceEx(unsigned long,unsigned long,char * __ptr64,...)
?VdsTraceEx@@YAXKKPEADZZ
; void __cdecl VdsTraceExHelper(unsigned long,unsigned long,char * __ptr64,char * __ptr64)
?VdsTraceExHelper@@YAXKKPEAD0@Z
; void __cdecl VdsTraceExW(unsigned long,unsigned long,unsigned short * __ptr64,...)
?VdsTraceExW@@YAXKKPEAGZZ
; void __cdecl VdsTraceExWHelper(unsigned long,unsigned long,unsigned short * __ptr64,char * __ptr64)
?VdsTraceExWHelper@@YAXKKPEAGPEAD@Z
; void __cdecl VdsTraceW(unsigned long,unsigned short * __ptr64,...)
?VdsTraceW@@YAXKPEAGZZ
; public: long __cdecl CVdsAsyncObjectBase::WaitImpl(long * __ptr64) __ptr64
?WaitImpl@CVdsAsyncObjectBase@@QEAAJPEAJ@Z
; private: static __int64 __cdecl CVdsPnPNotificationBase::WindowProcEntry(struct HWND__ * __ptr64,unsigned int,unsigned __int64,__int64)
?WindowProcEntry@CVdsPnPNotificationBase@@CA_JPEAUHWND__@@I_K_J@Z
; public: void __cdecl CVdsAsyncObjectBase::ZeroAsyncOut(void) __ptr64
?ZeroAsyncOut@CVdsAsyncObjectBase@@QEAAXXZ
DllMain
RegisterVdsFabric
UnregisterVdsFabric
