Changeset 85121 in vbox for trunk/src/VBox/Additions/WINNT
- Timestamp:
- Jul 8, 2020 7:33:26 PM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 139061
- Location:
- trunk/src/VBox/Additions/WINNT
- Files:
-
- 28 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/common/xpdm/VBoxVideoIOCTL.h
r82968 r85121 69 69 70 70 /** Complete host commands addressed to the display */ 71 typedef DECLCALLBACK(void) FNVBOXVIDEOHGSMICOMPLETION(HVBOXVIDEOHGSMI hHGSMI, struct VBVAHOSTCMD RT_UNTRUSTED_VOLATILE_HOST * pCmd); 71 typedef DECLCALLBACKTYPE(void, FNVBOXVIDEOHGSMICOMPLETION,(HVBOXVIDEOHGSMI hHGSMI, 72 struct VBVAHOSTCMD RT_UNTRUSTED_VOLATILE_HOST * pCmd)); 72 73 typedef FNVBOXVIDEOHGSMICOMPLETION *PFNVBOXVIDEOHGSMICOMPLETION; 73 74 74 75 /** request the host commands addressed to the display */ 75 typedef DECLCALLBACK (int) FNVBOXVIDEOHGSMICOMMANDS(HVBOXVIDEOHGSMI hHGSMI, uint8_t u8Channel, uint32_t iDevice,76 struct VBVAHOSTCMD RT_UNTRUSTED_VOLATILE_HOST ** ppCmd);76 typedef DECLCALLBACKTYPE(int, FNVBOXVIDEOHGSMICOMMANDS,(HVBOXVIDEOHGSMI hHGSMI, uint8_t u8Channel, uint32_t iDevice, 77 struct VBVAHOSTCMD RT_UNTRUSTED_VOLATILE_HOST ** ppCmd)); 77 78 typedef FNVBOXVIDEOHGSMICOMMANDS *PFNVBOXVIDEOHGSMICOMMANDS; 78 79 79 80 /** post guest command (offset) to the host */ 80 typedef DECLCALLBACK (void) FNVBOXVIDEOHGSMIPOSTCOMMAND(HVBOXVIDEOHGSMI hHGSMI, HGSMIOFFSET offCmd);81 typedef DECLCALLBACKTYPE(void, FNVBOXVIDEOHGSMIPOSTCOMMAND,(HVBOXVIDEOHGSMI hHGSMI, HGSMIOFFSET offCmd)); 81 82 typedef FNVBOXVIDEOHGSMIPOSTCOMMAND *PFNVBOXVIDEOHGSMIPOSTCOMMAND; 82 83 -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxDispDbg.cpp
r83827 r85121 133 133 } VBOXVDBG_DUMP_INFO, *PVBOXVDBG_DUMP_INFO; 134 134 135 typedef DECLCALLBACK (void) FNVBOXVDBG_CONTENTS_DUMPER(PVBOXVDBG_DUMP_INFO pInfo, BOOLEAN fBreak, void *pvDumper);135 typedef DECLCALLBACKTYPE(void, FNVBOXVDBG_CONTENTS_DUMPER,(PVBOXVDBG_DUMP_INFO pInfo, BOOLEAN fBreak, void *pvDumper)); 136 136 typedef FNVBOXVDBG_CONTENTS_DUMPER *PFNVBOXVDBG_CONTENTS_DUMPER; 137 137 … … 588 588 } 589 589 590 static VOID CALLBACK vboxVDbgTimerCb(__in PVOID lpParameter, __in BOOLEAN TimerOrWaitFired) 590 static VOID CALLBACK vboxVDbgTimerCb(__in PVOID lpParameter, __in BOOLEAN TimerOrWaitFired) RT_NOTHROW_DEF 591 591 { 592 592 RT_NOREF(lpParameter, TimerOrWaitFired); … … 688 688 } 689 689 690 LONG WINAPI vboxVDbgVectoredHandler(struct _EXCEPTION_POINTERS *pExceptionInfo) 690 static LONG WINAPI vboxVDbgVectoredHandler(struct _EXCEPTION_POINTERS *pExceptionInfo) RT_NOTHROW_DEF 691 691 { 692 692 static volatile bool g_fAllowIgnore = true; /* Might be changed in kernel debugger. */ … … 721 721 { 722 722 Assert(!g_VBoxWDbgVEHandler); 723 g_VBoxWDbgVEHandler = AddVectoredExceptionHandler(1, vboxVDbgVectoredHandler);723 g_VBoxWDbgVEHandler = AddVectoredExceptionHandler(1, vboxVDbgVectoredHandler); 724 724 Assert(g_VBoxWDbgVEHandler); 725 725 -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/shared/VBoxDispKmt.cpp
r82968 r85121 53 53 bool bSupportedWin8 = true; 54 54 pCallbacks->pfnD3DKMTOpenAdapterFromHdc = (PFND3DKMT_OPENADAPTERFROMHDC)GetProcAddress(pCallbacks->hGdi32, "D3DKMTOpenAdapterFromHdc"); 55 LogFunc(("pfnD3DKMTOpenAdapterFromHdc = %p\n", pCallbacks->pfnD3DKMTOpenAdapterFromHdc));55 LogFunc(("pfnD3DKMTOpenAdapterFromHdc = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTOpenAdapterFromHdc))); 56 56 bSupported &= !!(pCallbacks->pfnD3DKMTOpenAdapterFromHdc); 57 57 58 58 pCallbacks->pfnD3DKMTOpenAdapterFromGdiDisplayName = (PFND3DKMT_OPENADAPTERFROMGDIDISPLAYNAME)GetProcAddress(pCallbacks->hGdi32, "D3DKMTOpenAdapterFromGdiDisplayName"); 59 LogFunc(("pfnD3DKMTOpenAdapterFromGdiDisplayName = %p\n", pCallbacks->pfnD3DKMTOpenAdapterFromGdiDisplayName));59 LogFunc(("pfnD3DKMTOpenAdapterFromGdiDisplayName = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTOpenAdapterFromGdiDisplayName))); 60 60 bSupported &= !!(pCallbacks->pfnD3DKMTOpenAdapterFromGdiDisplayName); 61 61 62 62 pCallbacks->pfnD3DKMTCloseAdapter = (PFND3DKMT_CLOSEADAPTER)GetProcAddress(pCallbacks->hGdi32, "D3DKMTCloseAdapter"); 63 LogFunc(("pfnD3DKMTCloseAdapter = %p\n", pCallbacks->pfnD3DKMTCloseAdapter));63 LogFunc(("pfnD3DKMTCloseAdapter = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTCloseAdapter))); 64 64 bSupported &= !!(pCallbacks->pfnD3DKMTCloseAdapter); 65 65 66 66 pCallbacks->pfnD3DKMTEscape = (PFND3DKMT_ESCAPE)GetProcAddress(pCallbacks->hGdi32, "D3DKMTEscape"); 67 LogFunc(("pfnD3DKMTEscape = %p\n", pCallbacks->pfnD3DKMTEscape));67 LogFunc(("pfnD3DKMTEscape = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTEscape))); 68 68 bSupported &= !!(pCallbacks->pfnD3DKMTEscape); 69 69 70 70 pCallbacks->pfnD3DKMTQueryAdapterInfo = (PFND3DKMT_QUERYADAPTERINFO)GetProcAddress(pCallbacks->hGdi32, "D3DKMTQueryAdapterInfo"); 71 LogFunc(("pfnD3DKMTQueryAdapterInfo = %p\n", pCallbacks->pfnD3DKMTQueryAdapterInfo));71 LogFunc(("pfnD3DKMTQueryAdapterInfo = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTQueryAdapterInfo))); 72 72 bSupported &= !!(pCallbacks->pfnD3DKMTQueryAdapterInfo); 73 73 74 75 LogFunc(("pfnD3DKMTCreateDevice = %p\n", pCallbacks->pfnD3DKMTCreateDevice));74 pCallbacks->pfnD3DKMTCreateDevice = (PFND3DKMT_CREATEDEVICE)GetProcAddress(pCallbacks->hGdi32, "D3DKMTCreateDevice"); 75 LogFunc(("pfnD3DKMTCreateDevice = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTCreateDevice))); 76 76 bSupported &= !!(pCallbacks->pfnD3DKMTCreateDevice); 77 77 78 78 pCallbacks->pfnD3DKMTDestroyDevice = (PFND3DKMT_DESTROYDEVICE)GetProcAddress(pCallbacks->hGdi32, "D3DKMTDestroyDevice"); 79 LogFunc(("pfnD3DKMTDestroyDevice = %p\n", pCallbacks->pfnD3DKMTDestroyDevice));79 LogFunc(("pfnD3DKMTDestroyDevice = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTDestroyDevice))); 80 80 bSupported &= !!(pCallbacks->pfnD3DKMTDestroyDevice); 81 81 82 82 pCallbacks->pfnD3DKMTCreateContext = (PFND3DKMT_CREATECONTEXT)GetProcAddress(pCallbacks->hGdi32, "D3DKMTCreateContext"); 83 LogFunc(("pfnD3DKMTCreateContext = %p\n", pCallbacks->pfnD3DKMTCreateContext));83 LogFunc(("pfnD3DKMTCreateContext = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTCreateContext))); 84 84 bSupported &= !!(pCallbacks->pfnD3DKMTCreateContext); 85 85 86 86 pCallbacks->pfnD3DKMTDestroyContext = (PFND3DKMT_DESTROYCONTEXT)GetProcAddress(pCallbacks->hGdi32, "D3DKMTDestroyContext"); 87 LogFunc(("pfnD3DKMTDestroyContext = %p\n", pCallbacks->pfnD3DKMTDestroyContext));87 LogFunc(("pfnD3DKMTDestroyContext = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTDestroyContext))); 88 88 bSupported &= !!(pCallbacks->pfnD3DKMTDestroyContext); 89 89 90 90 pCallbacks->pfnD3DKMTRender = (PFND3DKMT_RENDER)GetProcAddress(pCallbacks->hGdi32, "D3DKMTRender"); 91 LogFunc(("pfnD3DKMTRender = %p\n", pCallbacks->pfnD3DKMTRender));91 LogFunc(("pfnD3DKMTRender = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTRender))); 92 92 bSupported &= !!(pCallbacks->pfnD3DKMTRender); 93 93 94 94 pCallbacks->pfnD3DKMTCreateAllocation = (PFND3DKMT_CREATEALLOCATION)GetProcAddress(pCallbacks->hGdi32, "D3DKMTCreateAllocation"); 95 LogFunc(("pfnD3DKMTCreateAllocation = %p\n", pCallbacks->pfnD3DKMTCreateAllocation));95 LogFunc(("pfnD3DKMTCreateAllocation = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTCreateAllocation))); 96 96 bSupported &= !!(pCallbacks->pfnD3DKMTCreateAllocation); 97 97 98 98 pCallbacks->pfnD3DKMTDestroyAllocation = (PFND3DKMT_DESTROYALLOCATION)GetProcAddress(pCallbacks->hGdi32, "D3DKMTDestroyAllocation"); 99 LogFunc(("pfnD3DKMTDestroyAllocation = %p\n", pCallbacks->pfnD3DKMTDestroyAllocation));99 LogFunc(("pfnD3DKMTDestroyAllocation = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTDestroyAllocation))); 100 100 bSupported &= !!(pCallbacks->pfnD3DKMTDestroyAllocation); 101 101 102 102 pCallbacks->pfnD3DKMTLock = (PFND3DKMT_LOCK)GetProcAddress(pCallbacks->hGdi32, "D3DKMTLock"); 103 LogFunc(("pfnD3DKMTLock = %p\n", pCallbacks->pfnD3DKMTLock));103 LogFunc(("pfnD3DKMTLock = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTLock))); 104 104 bSupported &= !!(pCallbacks->pfnD3DKMTLock); 105 105 106 106 pCallbacks->pfnD3DKMTUnlock = (PFND3DKMT_UNLOCK)GetProcAddress(pCallbacks->hGdi32, "D3DKMTUnlock"); 107 LogFunc(("pfnD3DKMTUnlock = %p\n", pCallbacks->pfnD3DKMTUnlock));107 LogFunc(("pfnD3DKMTUnlock = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTUnlock))); 108 108 bSupported &= !!(pCallbacks->pfnD3DKMTUnlock); 109 109 110 110 pCallbacks->pfnD3DKMTInvalidateActiveVidPn = (PFND3DKMT_INVALIDATEACTIVEVIDPN)GetProcAddress(pCallbacks->hGdi32, "D3DKMTInvalidateActiveVidPn"); 111 LogFunc(("pfnD3DKMTInvalidateActiveVidPn = %p\n", pCallbacks->pfnD3DKMTInvalidateActiveVidPn));111 LogFunc(("pfnD3DKMTInvalidateActiveVidPn = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTInvalidateActiveVidPn))); 112 112 bSupported &= !!(pCallbacks->pfnD3DKMTInvalidateActiveVidPn); 113 113 114 114 pCallbacks->pfnD3DKMTPollDisplayChildren = (PFND3DKMT_POLLDISPLAYCHILDREN)GetProcAddress(pCallbacks->hGdi32, "D3DKMTPollDisplayChildren"); 115 LogFunc(("pfnD3DKMTPollDisplayChildren = %p\n", pCallbacks->pfnD3DKMTPollDisplayChildren));115 LogFunc(("pfnD3DKMTPollDisplayChildren = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTPollDisplayChildren))); 116 116 bSupported &= !!(pCallbacks->pfnD3DKMTPollDisplayChildren); 117 117 118 118 pCallbacks->pfnD3DKMTEnumAdapters = (PFND3DKMT_ENUMADAPTERS)GetProcAddress(pCallbacks->hGdi32, "D3DKMTEnumAdapters"); 119 LogFunc(("pfnD3DKMTEnumAdapters = %p\n", pCallbacks->pfnD3DKMTEnumAdapters));119 LogFunc(("pfnD3DKMTEnumAdapters = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTEnumAdapters))); 120 120 /* this present starting win8 release preview only, so keep going if it is not available, 121 121 * i.e. do not clear the bSupported on its absence */ … … 123 123 124 124 pCallbacks->pfnD3DKMTOpenAdapterFromLuid = (PFND3DKMT_OPENADAPTERFROMLUID)GetProcAddress(pCallbacks->hGdi32, "D3DKMTOpenAdapterFromLuid"); 125 LogFunc(("pfnD3DKMTOpenAdapterFromLuid = %p\n", pCallbacks->pfnD3DKMTOpenAdapterFromLuid));125 LogFunc(("pfnD3DKMTOpenAdapterFromLuid = %p\n", RT_CB_LOG_CAST(pCallbacks->pfnD3DKMTOpenAdapterFromLuid))); 126 126 /* this present starting win8 release preview only, so keep going if it is not available, 127 127 * i.e. do not clear the bSupported on its absence */ -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/shared/VBoxDispKmt.h
r82968 r85121 43 43 } D3DKMT_ENUMADAPTERS; 44 44 45 typedef NTSTATUS (APIENTRY *PFND3DKMT_ENUMADAPTERS)(IN OUT D3DKMT_ENUMADAPTERS*);45 typedef DECLCALLBACKPTR_EX(NTSTATUS, APIENTRY, PFND3DKMT_ENUMADAPTERS,(IN OUT D3DKMT_ENUMADAPTERS *)); 46 46 47 47 typedef struct _D3DKMT_OPENADAPTERFROMLUID … … 51 51 } D3DKMT_OPENADAPTERFROMLUID; 52 52 53 typedef NTSTATUS (APIENTRY *PFND3DKMT_OPENADAPTERFROMLUID)(IN OUT D3DKMT_OPENADAPTERFROMLUID*);53 typedef DECLCALLBACKPTR_EX(NTSTATUS, APIENTRY, PFND3DKMT_OPENADAPTERFROMLUID,(IN OUT D3DKMT_OPENADAPTERFROMLUID *)); 54 54 /* END OF win8 release preview-specific stuff */ 55 55 -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/xpdm/VBoxDispVHWA.h
r82968 r85121 62 62 }VBOXVHWASURFDESC, *PVBOXVHWASURFDESC; 63 63 64 typedef DECLCALLBACK(void) FNVBOXVHWACMDCOMPLETION(PVBOXDISPDEV pDev, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd, void *pvContext); 64 typedef DECLCALLBACKTYPE(void, FNVBOXVHWACMDCOMPLETION,(PVBOXDISPDEV pDev, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd, 65 void *pvContext)); 65 66 typedef FNVBOXVHWACMDCOMPLETION *PFNVBOXVHWACMDCOMPLETION; 66 67 -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPCm.cpp
r82968 r85121 35 35 } VBOXVIDEOCM_CMD_CTL_KM_TYPE; 36 36 37 typedef DECLCALLBACK(VOID) FNVBOXVIDEOCM_CMD_CB(PVBOXVIDEOCM_CTX pContext, struct VBOXVIDEOCM_CMD_CTL_KM *pCmd, PVOID pvContext); 37 typedef DECLCALLBACKTYPE(VOID, FNVBOXVIDEOCM_CMD_CB,(PVBOXVIDEOCM_CTX pContext, struct VBOXVIDEOCM_CMD_CTL_KM *pCmd, 38 PVOID pvContext)); 38 39 typedef FNVBOXVIDEOCM_CMD_CB *PFNVBOXVIDEOCM_CMD_CB; 39 40 -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPCm.h
r82968 r85121 55 55 #define VBOXVIDEOCMCMDVISITOR_RETURN_BREAK 0x00000001 56 56 #define VBOXVIDEOCMCMDVISITOR_RETURN_RMCMD 0x00000002 57 typedef DECLCALLBACK (UINT) FNVBOXVIDEOCMCMDVISITOR(PVBOXVIDEOCM_CTX pContext, PVOID pvCmd, uint32_t cbCmd, PVOID pvVisitor);57 typedef DECLCALLBACKTYPE(UINT, FNVBOXVIDEOCMCMDVISITOR,(PVBOXVIDEOCM_CTX pContext, PVOID pvCmd, uint32_t cbCmd, PVOID pvVisitor)); 58 58 typedef FNVBOXVIDEOCMCMDVISITOR *PFNVBOXVIDEOCMCMDVISITOR; 59 59 NTSTATUS vboxVideoCmCmdVisit(PVBOXVIDEOCM_CTX pContext, BOOLEAN bEntireSession, PFNVBOXVIDEOCMCMDVISITOR pfnVisitor, PVOID pvVisitor); -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPLegacy.cpp
r83840 r85121 52 52 53 53 typedef struct VBOXVDMADDI_CMD *PVBOXVDMADDI_CMD; 54 typedef DECLCALLBACK (VOID) FNVBOXVDMADDICMDCOMPLETE_DPC(PVBOXMP_DEVEXT pDevExt, PVBOXVDMADDI_CMD pCmd, PVOID pvContext);54 typedef DECLCALLBACKTYPE(VOID, FNVBOXVDMADDICMDCOMPLETE_DPC,(PVBOXMP_DEVEXT pDevExt, PVBOXVDMADDI_CMD pCmd, PVOID pvContext)); 55 55 typedef FNVBOXVDMADDICMDCOMPLETE_DPC *PFNVBOXVDMADDICMDCOMPLETE_DPC; 56 56 -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPShgsmi.h
r82968 r85121 33 33 } VBOXSHGSMI, *PVBOXSHGSMI; 34 34 35 typedef DECLCALLBACK (void) FNVBOXSHGSMICMDCOMPLETION(PVBOXSHGSMI pHeap, void RT_UNTRUSTED_VOLATILE_HOST *pvCmd, void *pvContext);35 typedef DECLCALLBACKTYPE(void, FNVBOXSHGSMICMDCOMPLETION,(PVBOXSHGSMI pHeap, void RT_UNTRUSTED_VOLATILE_HOST *pvCmd, void *pvContext)); 36 36 typedef FNVBOXSHGSMICMDCOMPLETION *PFNVBOXSHGSMICMDCOMPLETION; 37 37 38 typedef DECLCALLBACK (PFNVBOXSHGSMICMDCOMPLETION) FNVBOXSHGSMICMDCOMPLETION_IRQ(PVBOXSHGSMI pHeap,39 void RT_UNTRUSTED_VOLATILE_HOST *pvCmd,40 void *pvContext, void **ppvCompletion);38 typedef DECLCALLBACKTYPE(PFNVBOXSHGSMICMDCOMPLETION, FNVBOXSHGSMICMDCOMPLETION_IRQ,(PVBOXSHGSMI pHeap, 39 void RT_UNTRUSTED_VOLATILE_HOST *pvCmd, 40 void *pvContext, void **ppvCompletion)); 41 41 typedef FNVBOXSHGSMICMDCOMPLETION_IRQ *PFNVBOXSHGSMICMDCOMPLETION_IRQ; 42 42 -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPVhwa.h
r82968 r85121 35 35 void vboxVhwaCommandSubmitAsynchAndComplete(PVBOXMP_DEVEXT pDevExt, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd); 36 36 37 typedef DECLCALLBACK (void) FNVBOXVHWACMDCOMPLETION(PVBOXMP_DEVEXT pDevExt, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd,38 void *pvContext);37 typedef DECLCALLBACKTYPE(void, FNVBOXVHWACMDCOMPLETION,(PVBOXMP_DEVEXT pDevExt, VBOXVHWACMD RT_UNTRUSTED_VOLATILE_HOST *pCmd, 38 void *pvContext)); 39 39 typedef FNVBOXVHWACMDCOMPLETION *PFNVBOXVHWACMDCOMPLETION; 40 40 -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPVidPn.h
r82968 r85121 53 53 54 54 /* !!!NOTE: The callback is responsible for releasing the path */ 55 typedef DECLCALLBACK(BOOLEAN) FNVBOXVIDPNENUMPATHS(D3DKMDT_HVIDPNTOPOLOGY hVidPnTopology, const DXGK_VIDPNTOPOLOGY_INTERFACE* pVidPnTopologyInterface, 56 const D3DKMDT_VIDPN_PRESENT_PATH *pNewVidPnPresentPathInfo, PVOID pContext); 55 typedef DECLCALLBACKTYPE(BOOLEAN, FNVBOXVIDPNENUMPATHS,(D3DKMDT_HVIDPNTOPOLOGY hVidPnTopology, 56 const DXGK_VIDPNTOPOLOGY_INTERFACE *pVidPnTopologyInterface, 57 const D3DKMDT_VIDPN_PRESENT_PATH *pNewVidPnPresentPathInfo, 58 PVOID pContext)); 57 59 typedef FNVBOXVIDPNENUMPATHS *PFNVBOXVIDPNENUMPATHS; 58 60 59 61 /* !!!NOTE: The callback is responsible for releasing the source mode info */ 60 typedef DECLCALLBACK(BOOLEAN) FNVBOXVIDPNENUMSOURCEMODES(D3DKMDT_HVIDPNSOURCEMODESET hNewVidPnSourceModeSet, const DXGK_VIDPNSOURCEMODESET_INTERFACE *pVidPnSourceModeSetInterface, 61 const D3DKMDT_VIDPN_SOURCE_MODE *pNewVidPnSourceModeInfo, PVOID pContext); 62 typedef DECLCALLBACKTYPE(BOOLEAN, FNVBOXVIDPNENUMSOURCEMODES,(D3DKMDT_HVIDPNSOURCEMODESET hNewVidPnSourceModeSet, 63 const DXGK_VIDPNSOURCEMODESET_INTERFACE *pVidPnSourceModeSetInterface, 64 const D3DKMDT_VIDPN_SOURCE_MODE *pNewVidPnSourceModeInfo, 65 PVOID pContext)); 62 66 typedef FNVBOXVIDPNENUMSOURCEMODES *PFNVBOXVIDPNENUMSOURCEMODES; 63 67 64 68 /* !!!NOTE: The callback is responsible for releasing the target mode info */ 65 typedef DECLCALLBACK(BOOLEAN) FNVBOXVIDPNENUMTARGETMODES(D3DKMDT_HVIDPNTARGETMODESET hNewVidPnTargetModeSet, const DXGK_VIDPNTARGETMODESET_INTERFACE *pVidPnTargetModeSetInterface, 66 const D3DKMDT_VIDPN_TARGET_MODE *pNewVidPnTargetModeInfo, PVOID pContext); 69 typedef DECLCALLBACKTYPE(BOOLEAN, FNVBOXVIDPNENUMTARGETMODES,(D3DKMDT_HVIDPNTARGETMODESET hNewVidPnTargetModeSet, 70 const DXGK_VIDPNTARGETMODESET_INTERFACE *pVidPnTargetModeSetInterface, 71 const D3DKMDT_VIDPN_TARGET_MODE *pNewVidPnTargetModeInfo, 72 PVOID pContext)); 67 73 typedef FNVBOXVIDPNENUMTARGETMODES *PFNVBOXVIDPNENUMTARGETMODES; 68 74 69 75 /* !!!NOTE: The callback is responsible for releasing the source mode info */ 70 typedef DECLCALLBACK(BOOLEAN) FNVBOXVIDPNENUMMONITORSOURCEMODES(D3DKMDT_HMONITORSOURCEMODESET hMonitorSMS, CONST DXGK_MONITORSOURCEMODESET_INTERFACE *pMonitorSMSIf, 71 CONST D3DKMDT_MONITOR_SOURCE_MODE *pMonitorSMI, PVOID pContext); 76 typedef DECLCALLBACKTYPE(BOOLEAN, FNVBOXVIDPNENUMMONITORSOURCEMODES,(D3DKMDT_HMONITORSOURCEMODESET hMonitorSMS, 77 CONST DXGK_MONITORSOURCEMODESET_INTERFACE *pMonitorSMSIf, 78 CONST D3DKMDT_MONITOR_SOURCE_MODE *pMonitorSMI, 79 PVOID pContext)); 72 80 typedef FNVBOXVIDPNENUMMONITORSOURCEMODES *PFNVBOXVIDPNENUMMONITORSOURCEMODES; 73 81 74 typedef DECLCALLBACK(BOOLEAN) FNVBOXVIDPNENUMTARGETSFORSOURCE(PVBOXMP_DEVEXT pDevExt, D3DKMDT_HVIDPNTOPOLOGY hVidPnTopology, const DXGK_VIDPNTOPOLOGY_INTERFACE* pVidPnTopologyInterface, 75 CONST D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId, D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId, SIZE_T cTgtPaths, PVOID pContext); 82 typedef DECLCALLBACKTYPE(BOOLEAN, FNVBOXVIDPNENUMTARGETSFORSOURCE,(PVBOXMP_DEVEXT pDevExt, D3DKMDT_HVIDPNTOPOLOGY hVidPnTopology, 83 const DXGK_VIDPNTOPOLOGY_INTERFACE* pVidPnTopologyInterface, 84 CONST D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId, 85 D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId, 86 SIZE_T cTgtPaths, PVOID pContext)); 76 87 typedef FNVBOXVIDPNENUMTARGETSFORSOURCE *PFNVBOXVIDPNENUMTARGETSFORSOURCE; 77 88 -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/gallium/Svga.h
r83578 r85121 126 126 127 127 typedef struct SVGAHOSTOBJECT SVGAHOSTOBJECT; 128 typedef DECLCALLBACK (NTSTATUS) FNHostObjectDestroy(SVGAHOSTOBJECT *pThis);128 typedef DECLCALLBACKTYPE(NTSTATUS, FNHostObjectDestroy,(SVGAHOSTOBJECT *pThis)); 129 129 typedef FNHostObjectDestroy *PFNHostObjectDestroy; 130 130 -
trunk/src/VBox/Additions/WINNT/Installer/VBoxDrvInst.cpp
r83826 r85121 399 399 UINT Notification, 400 400 UINT_PTR Param1, 401 UINT_PTR Param2) 401 UINT_PTR Param2) RT_NOTHROW_DEF 402 402 { 403 403 #ifdef DEBUG -
trunk/src/VBox/Additions/WINNT/VBoxCredProv/VBoxCredProvPoller.cpp
r82968 r85121 32 32 33 33 34 VBoxCredProvPoller::VBoxCredProvPoller(void) :35 m_hThreadPoller(NIL_RTTHREAD),36 m_pProv(NULL)34 VBoxCredProvPoller::VBoxCredProvPoller(void) 35 : m_hThreadPoller(NIL_RTTHREAD) 36 , m_pProv(NULL) 37 37 { 38 38 } … … 146 146 return VINF_SUCCESS; 147 147 } 148 -
trunk/src/VBox/Additions/WINNT/VBoxCredProv/VBoxCredProvProvider.cpp
r83824 r85121 23 23 24 24 #include <iprt/win/windows.h> 25 #include < credentialprovider.h>25 #include <iprt/win/credentialprovider.h> 26 26 27 27 #include <iprt/errcore.h> -
trunk/src/VBox/Additions/WINNT/VBoxCredProv/VBoxCredProvProvider.h
r82968 r85121 22 22 #endif 23 23 24 #include < credentialprovider.h>24 #include <iprt/win/credentialprovider.h> 25 25 #include <iprt/win/windows.h> 26 26 #include <strsafe.h> -
trunk/src/VBox/Additions/WINNT/VBoxCredProv/VBoxCredentialProvider.h
r82968 r85121 23 23 24 24 #include <iprt/win/windows.h> 25 #include < credentialprovider.h>25 #include <iprt/win/credentialprovider.h> 26 26 #include <Shlguid.h> 27 27 -
trunk/src/VBox/Additions/WINNT/VBoxHook/VBoxHook.cpp
r82968 r85121 54 54 static void CALLBACK VBoxHandleWinEvent(HWINEVENTHOOK hWinEventHook, DWORD event, HWND hwnd, 55 55 LONG idObject, LONG idChild, 56 DWORD dwEventThread, DWORD dwmsEventTime) 56 DWORD dwEventThread, DWORD dwmsEventTime) RT_NOTHROW_DEF 57 57 { 58 58 RT_NOREF(hWinEventHook, idChild, dwEventThread, dwmsEventTime); … … 109 109 static void CALLBACK VBoxHandleDesktopEvent(HWINEVENTHOOK hWinEventHook, DWORD event, HWND hwnd, 110 110 LONG idObject, LONG idChild, 111 DWORD dwEventThread, DWORD dwmsEventTime) 111 DWORD dwEventThread, DWORD dwmsEventTime) RT_NOTHROW_DEF 112 112 { 113 113 RT_NOREF(hWinEventHook, event, hwnd, idObject, idChild, dwEventThread, dwmsEventTime); -
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxClipboard.cpp
r83823 r85121 749 749 } 750 750 751 static intvboxClipboardWindowThread(RTTHREAD hThread, void *pvUser)751 static DECLCALLBACK(int) vboxClipboardWindowThread(RTTHREAD hThread, void *pvUser) 752 752 { 753 753 PSHCLCONTEXT pCtx = (PSHCLCONTEXT)pvUser; -
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDispIf.cpp
r84728 r85121 72 72 typedef struct _VBOXDISPLAYWDDMAPICONTEXT 73 73 { 74 LONG (WINAPI * pfnSetDisplayConfig)(UINT numPathArrayElements,DISPLAYCONFIG_PATH_INFO *pathArray,UINT numModeInfoArrayElements, 75 DISPLAYCONFIG_MODE_INFO *modeInfoArray, UINT Flags); 76 LONG (WINAPI * pfnQueryDisplayConfig)(UINT Flags,UINT *pNumPathArrayElements, DISPLAYCONFIG_PATH_INFO *pPathInfoArray, 77 UINT *pNumModeInfoArrayElements, DISPLAYCONFIG_MODE_INFO *pModeInfoArray, 78 DISPLAYCONFIG_TOPOLOGY_ID *pCurrentTopologyId); 79 LONG (WINAPI * pfnGetDisplayConfigBufferSizes)(UINT Flags, UINT *pNumPathArrayElements, UINT *pNumModeInfoArrayElements); 74 DECLCALLBACKMEMBER_EX(LONG, WINAPI, pfnSetDisplayConfig,(UINT numPathArrayElements, DISPLAYCONFIG_PATH_INFO *pathArray, 75 UINT numModeInfoArrayElements, 76 DISPLAYCONFIG_MODE_INFO *modeInfoArray, UINT Flags)); 77 DECLCALLBACKMEMBER_EX(LONG, WINAPI, pfnQueryDisplayConfig,(UINT Flags, UINT *pNumPathArrayElements, 78 DISPLAYCONFIG_PATH_INFO *pPathInfoArray, 79 UINT *pNumModeInfoArrayElements, 80 DISPLAYCONFIG_MODE_INFO *pModeInfoArray, 81 DISPLAYCONFIG_TOPOLOGY_ID *pCurrentTopologyId)); 82 DECLCALLBACKMEMBER_EX(LONG, WINAPI, pfnGetDisplayConfigBufferSizes,(UINT Flags, UINT *pNumPathArrayElements, 83 UINT *pNumModeInfoArrayElements)); 80 84 } _VBOXDISPLAYWDDMAPICONTEXT; 81 85 … … 1219 1223 } 1220 1224 1221 static DWORD WINAPI vboxRrRunnerThread(void *pvUser) 1225 /** @todo r=bird: Only the CRT uses CreateThread for creating threading!! */ 1226 static DWORD WINAPI vboxRrRunnerThread(void *pvUser) RT_NOTHROW_DEF 1222 1227 { 1223 1228 RT_NOREF(pvUser); … … 1250 1255 if (pMon->hEvent) 1251 1256 { 1257 /** @todo r=bird: What kind of stupid nonsense is this?!? 1258 * Only the CRT uses CreateThread for creating threading!! 1259 */ 1252 1260 pMon->hThread = CreateThread(NULL /* LPSECURITY_ATTRIBUTES lpThreadAttributes */, 1253 1261 0 /* SIZE_T dwStackSize */, 1254 1255 1256 1257 1262 vboxRrRunnerThread, 1263 pMon, 1264 0 /* DWORD dwCreationFlags */, 1265 &pMon->idThread); 1258 1266 if (pMon->hThread) 1259 1267 { … … 1261 1269 if (dwResult == WAIT_OBJECT_0) 1262 1270 return S_OK; 1263 else 1264 { 1265 Log(("WaitForSingleObject failed!")); 1266 hr = E_FAIL; 1267 } 1271 Log(("WaitForSingleObject failed!")); 1272 hr = E_FAIL; 1268 1273 } 1269 1274 else -
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDispIf.h
r84728 r85121 58 58 struct 59 59 { 60 LONG (WINAPI *pfnChangeDisplaySettingsEx)(LPCSTR lpszDeviceName, LPDEVMODE lpDevMode, HWND hwnd, DWORD dwflags, LPVOID lParam); 60 DECLCALLBACKMEMBER_EX(LONG, WINAPI, pfnChangeDisplaySettingsEx,(LPCSTR lpszDeviceName, LPDEVMODE lpDevMode, 61 HWND hwnd, DWORD dwflags, LPVOID lParam)); 61 62 } xpdm; 62 63 #ifdef VBOX_WITH_WDDM … … 64 65 { 65 66 /* ChangeDisplaySettingsEx does not exist in NT. ResizeDisplayDevice uses the function. */ 66 LONG (WINAPI *pfnChangeDisplaySettingsEx)(LPCTSTR lpszDeviceName, LPDEVMODE lpDevMode, HWND hwnd, DWORD dwflags, LPVOID lParam); 67 DECLCALLBACKMEMBER_EX(LONG, WINAPI, pfnChangeDisplaySettingsEx,(LPCTSTR lpszDeviceName, LPDEVMODE lpDevMode, 68 HWND hwnd, DWORD dwflags, LPVOID lParam)); 67 69 /* EnumDisplayDevices does not exist in NT. isVBoxDisplayDriverActive et al. are using these functions. */ 68 BOOL (WINAPI *pfnEnumDisplayDevices)(IN LPCSTR lpDevice, IN DWORD iDevNum, OUT PDISPLAY_DEVICEA lpDisplayDevice, IN DWORD dwFlags); 70 DECLCALLBACKMEMBER_EX(BOOL, WINAPI, pfnEnumDisplayDevices,(IN LPCSTR lpDevice, IN DWORD iDevNum, 71 OUT PDISPLAY_DEVICEA lpDisplayDevice, IN DWORD dwFlags)); 69 72 70 73 VBOXDISPKMT_CALLBACKS KmtCallbacks; -
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDisplay.cpp
r82968 r85121 49 49 BOOL fAnyX; 50 50 /** ChangeDisplaySettingsEx does not exist in NT. ResizeDisplayDevice uses the function. */ 51 LONG (WINAPI * pfnChangeDisplaySettingsEx)(LPCTSTR lpszDeviceName, LPDEVMODE lpDevMode, HWND hwnd, DWORD dwflags, LPVOID lParam); 51 DECLCALLBACKMEMBER_EX(LONG,WINAPI, pfnChangeDisplaySettingsEx,(LPCTSTR lpszDeviceName, LPDEVMODE lpDevMode, HWND hwnd, 52 DWORD dwflags, LPVOID lParam)); 52 53 /** EnumDisplayDevices does not exist in NT. isVBoxDisplayDriverActive et al. are using these functions. */ 53 BOOL (WINAPI * pfnEnumDisplayDevices)(IN LPCSTR lpDevice, IN DWORD iDevNum, OUT PDISPLAY_DEVICEA lpDisplayDevice, IN DWORD dwFlags); 54 DECLCALLBACKMEMBER_EX(BOOL, WINAPI, pfnEnumDisplayDevices,(IN LPCSTR lpDevice, IN DWORD iDevNum, 55 OUT PDISPLAY_DEVICEA lpDisplayDevice, IN DWORD dwFlags)); 54 56 /** Display driver interface, XPDM - WDDM abstraction see VBOXDISPIF** definitions above */ 55 57 VBOXDISPIF dispIf; -
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDnD.cpp
r83833 r85121 84 84 * Internal Functions * 85 85 *********************************************************************************************************************************/ 86 static LRESULT CALLBACK vboxDnDWndProcInstance(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) ;87 static LRESULT CALLBACK vboxDnDWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) ;86 static LRESULT CALLBACK vboxDnDWndProcInstance(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) RT_NOTHROW_PROTO; 87 static LRESULT CALLBACK vboxDnDWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) RT_NOTHROW_PROTO; 88 88 89 89 … … 199 199 * is using the thread. 200 200 */ 201 /* static */ 202 int VBoxDnDWnd::Thread(RTTHREAD hThread, void *pvUser) 201 /*static*/ DECLCALLBACK(int) VBoxDnDWnd::Thread(RTTHREAD hThread, void *pvUser) 203 202 { 204 203 AssertPtrReturn(pvUser, VERR_INVALID_POINTER); … … 251 250 dwStyle |= WS_VISIBLE; /* Make the window visible. */ 252 251 #endif 253 pThis->hWnd = 254 CreateWindowEx(dwExStyle, 255 VBOX_DND_WND_CLASS, VBOX_DND_WND_CLASS, 256 dwStyle, 252 pThis->hWnd = CreateWindowEx(dwExStyle, 253 VBOX_DND_WND_CLASS, VBOX_DND_WND_CLASS, 254 dwStyle, 257 255 #ifdef VBOX_DND_DEBUG_WND 258 CW_USEDEFAULT, CW_USEDEFAULT, 200, 200, NULL, NULL,256 CW_USEDEFAULT, CW_USEDEFAULT, 200, 200, NULL, NULL, 259 257 #else 260 -200, -200, 100, 100, NULL, NULL,258 -200, -200, 100, 100, NULL, NULL, 261 259 #endif 262 hInstance, pThis /* lParm */);260 hInstance, pThis /* lParm */); 263 261 if (!pThis->hWnd) 264 262 { … … 1625 1623 * window instances. 1626 1624 */ 1627 static LRESULT CALLBACK vboxDnDWndProcInstance(HWND hWnd, UINT uMsg, 1628 WPARAM wParam, LPARAM lParam) 1625 static LRESULT CALLBACK vboxDnDWndProcInstance(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) RT_NOTHROW_DEF 1629 1626 { 1630 1627 LONG_PTR pUserData = GetWindowLongPtr(hWnd, GWLP_USERDATA); … … 1642 1639 * proxy window instance. 1643 1640 */ 1644 static LRESULT CALLBACK vboxDnDWndProc(HWND hWnd, UINT uMsg, 1645 WPARAM wParam, LPARAM lParam) 1641 static LRESULT CALLBACK vboxDnDWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) RT_NOTHROW_DEF 1646 1642 { 1647 1643 /* Note: WM_NCCREATE is not the first ever message which arrives, but -
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDnD.h
r83833 r85121 313 313 public: 314 314 315 /** The window's thread for the native message pump and 316 * OLE context. */ 317 static int Thread(RTTHREAD hThread, void *pvUser); 315 /** The window's thread for the native message pump and OLE context. */ 316 static DECLCALLBACK(int) Thread(RTTHREAD hThread, void *pvUser); 318 317 319 318 public: -
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxSeamless.cpp
r82968 r85121 195 195 } 196 196 197 BOOL CALLBACK VBoxEnumFunc(HWND hwnd, LPARAM lParam) 197 BOOL CALLBACK VBoxEnumFunc(HWND hwnd, LPARAM lParam) RT_NOTHROW_DEF 198 198 { 199 199 PVBOX_ENUM_PARAM lpParam = (PVBOX_ENUM_PARAM)lParam; -
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxTray.cpp
r84721 r85121 497 497 * @param pfnLog 498 498 */ 499 static voidvboxTrayLogHeaderFooter(PRTLOGGER pLoggerRelease, RTLOGPHASE enmPhase, PFNRTLOGPHASEMSG pfnLog)499 static DECLCALLBACK(void) vboxTrayLogHeaderFooter(PRTLOGGER pLoggerRelease, RTLOGPHASE enmPhase, PFNRTLOGPHASEMSG pfnLog) 500 500 { 501 501 /* Some introductory information. */ … … 726 726 *(void **)&pfnConvertStringSecurityDescriptorToSecurityDescriptorA = 727 727 RTLdrGetSystemSymbol("advapi32.dll", "ConvertStringSecurityDescriptorToSecurityDescriptorA"); 728 Log(("pfnConvertStringSecurityDescriptorToSecurityDescriptorA = %x\n", pfnConvertStringSecurityDescriptorToSecurityDescriptorA)); 728 Log(("pfnConvertStringSecurityDescriptorToSecurityDescriptorA = %p\n", 729 RT_CB_LOG_CAST(pfnConvertStringSecurityDescriptorToSecurityDescriptorA))); 729 730 if (pfnConvertStringSecurityDescriptorToSecurityDescriptorA) 730 731 { … … 1675 1676 struct VBOXCAPS; 1676 1677 1677 typedef DECLCALLBACKPTR(void, PFNVBOXCAPS_ENTRY_ON_ENABLE )(struct VBOXCAPS *pConsole, struct VBOXCAPS_ENTRY *pCap, BOOL fEnabled);1678 typedef DECLCALLBACKPTR(void, PFNVBOXCAPS_ENTRY_ON_ENABLE,(struct VBOXCAPS *pConsole, struct VBOXCAPS_ENTRY *pCap, BOOL fEnabled)); 1678 1679 1679 1680 typedef struct VBOXCAPS_ENTRY -
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxTray.h
r84720 r85121 98 98 * @todo r=bird: The pEnv type is WRONG! Please check all your const pointers. 99 99 */ 100 DECLCALLBACKMEMBER(int, pfnInit) (const PVBOXSERVICEENV pEnv, void **ppInstance);100 DECLCALLBACKMEMBER(int, pfnInit,(const PVBOXSERVICEENV pEnv, void **ppInstance)); 101 101 102 102 /** Called from the worker thread. … … 108 108 * before and after blocking. 109 109 */ 110 DECLCALLBACKMEMBER(int, pfnWorker) (void *pInstance, bool volatile *pfShutdown);110 DECLCALLBACKMEMBER(int, pfnWorker,(void *pInstance, bool volatile *pfShutdown)); 111 111 112 112 /** 113 113 * Stops a service. 114 114 */ 115 DECLCALLBACKMEMBER(int, pfnStop) (void *pInstance);115 DECLCALLBACKMEMBER(int, pfnStop,(void *pInstance)); 116 116 117 117 /** … … 120 120 * @remarks This may be called even if pfnInit hasn't been called! 121 121 */ 122 DECLCALLBACKMEMBER(void, pfnDestroy )(void *pInstance);122 DECLCALLBACKMEMBER(void, pfnDestroy,(void *pInstance)); 123 123 } VBOXSERVICEDESC, *PVBOXSERVICEDESC; 124 124 -
trunk/src/VBox/Additions/WINNT/tools/VBoxCertUtil.cpp
r84063 r85121 404 404 */ 405 405 static BOOL WINAPI displaySystemStoreCallback(const void *pvSystemStore, DWORD dwFlags, PCERT_SYSTEM_STORE_INFO pStoreInfo, 406 void *pvReserved, void *pvArg) 406 void *pvReserved, void *pvArg) RT_NOTHROW_DEF 407 407 { 408 408 RT_NOREF(pvArg); … … 482 482 * Worker for cmdDisplayAll. 483 483 */ 484 static BOOL WINAPI displaySystemStoreLocation(LPCWSTR pwszStoreLocation, DWORD dwFlags, void *pvReserved, void *pvArg) 484 static BOOL WINAPI 485 displaySystemStoreLocation(LPCWSTR pwszStoreLocation, DWORD dwFlags, void *pvReserved, void *pvArg) RT_NOTHROW_DEF 485 486 { 486 487 NOREF(pvReserved); NOREF(pvArg);
Note:
See TracChangeset
for help on using the changeset viewer.