有这么一个事儿
在Windows95的DirectX视频驱动程序接口暴露出一种公开方法,每个驱动程序都必须实现它,它被称为”DoesDriverSupport(REFGUID guidCapability)”,我们会传递一个指示功能的GUID给这个方法,然后接口方法会返回一个值,指示该驱动是否支持该功能。
我们定义了各种功能的GUID,例如GUID_CanStretchAlpha,它主要用来询问驱动程序是否能够通过Alpha通道来扩展位图。
有一次,我们调用DoesDriverSupport(GUID_XYZ)时,有一个驱动程序返回了TRUE,但是当DirectDraw尝试使用该功能时,它以一种非常引人注目的方式失败了。
因此,这名DirectDraw开发人员致电该驱动程序开发商,并问他们:”你们的视频开也可以支持XYZ吗?”
他们的回答是:”什么是XYZ?”
事实证明,他们的驱动程序对DidDriverSupport的实现是这样的:
换句话说,每当DirectX询问驱动程序:”你支持这个功能吗?” 他们回答说:”当然,我们是支持的。”
而驱动程序甚至没有检查要支持的功能是什么。
(我想,驱动程序大抵是由销售部门编写的吧。没有任何冒犯之意)
因此,DirectDraw的开发人员改变了他们查询驱动程序功能的方式。其中一名开发人员走进老板的办公室,拿了一张网卡,提取了MAC地址,然后用锤子砸碎了这张网卡。