03 2008 档案

摘要:对Native API NtSystemDebugControl的分析文章作者:tombkeeper[0×40]nsfocus[0×2e]com 在《获取Windows 系统的内核变量》中,我提及了在Windows NT 5.1以上的系统中存在一个功能强大的 Native API NtSystemDebugControl,下面我们来看看它到底有多强大。 NtSystemDebugControl是W... 阅读全文
posted @ 2008-03-29 12:01 至尊王者 阅读(5011) 评论(0) 推荐(0) 编辑
摘要:驱动级隐藏文件,注册表,进程 驱动程序暂不提供源码!提供接口方便调用. 别的不说了,看代码。 点击下载 阅读全文
posted @ 2008-03-29 11:59 至尊王者 阅读(869) 评论(0) 推荐(0) 编辑
摘要:以前驱动开发网悬赏挑战IceSword时写的,不过最后没公开。那时流氓软件势头正劲,我可不想火上浇油。现在反流氓软件日渐成熟,也就没关系了。知道了原理,防御是非常容易的。 原理很简单,实现的代码也很短,啥都不用说,各位直接看示例代码吧。 #include #define GET_PTR(ptr, offset) ( *(PVOID*)( (ULONG)ptr + (offs... 阅读全文
posted @ 2008-03-29 11:48 至尊王者 阅读(1198) 评论(0) 推荐(0) 编辑
摘要:从文件句柄获得全路径这个问题,似乎是个“老大难”问题。很久以前我就在水木清华见到过。最近又不断有人提到。其实问题并不难,只是解决办法有点绕,不是调用一个API就能解决的。 问题的关键在于,形如”X:”的Dos设备名都是符号链接(SymblicLink),而文件打开后文件对象中保存的是逻辑卷设备名(如”\Device\HarddiskVolumeX”)。前者可以转换成后者,而后者却不能简单地... 阅读全文
posted @ 2008-03-29 11:42 至尊王者 阅读(1899) 评论(0) 推荐(1) 编辑
摘要:24号下午百度Hi终于开始了有条件向百度用户开放百度Hi体验。为此,25号重新申请了个百度的账号,跑到百度Hi的官方网站去申请了抢先体验。可是却如石沉大海一般,没有了下文。只得作罢。 但是,始终希望能够体验一下百度Hi与QQ的不同。“贼”心不死,今天跑到百度贴吧的Hi吧去看到有已经申请成功大地人可以发送体验邀请,于是抱着试一试的态度回复了一条消息。结果很快就有了回复,给了我个邀请。这样我的百度Hi... 阅读全文
posted @ 2008-03-28 16:59 至尊王者 阅读(297) 评论(3) 推荐(0) 编辑
摘要:最近学习新东西,常有浅尝辄止的感觉,不仅理论上没有深入,技术层面上的收获也很难可以心满意足。如何更踏实深入的学些东西是很重要的。通常来说,深入学习常是个不断提出问题、解决问题的过程,MIT的Larson教授就此给出这样三条规则: 1、你一定要觉得你自己的问题有趣而又重要,否则你就不会有激情,不会投入。 2、你一定要有能力解决问题。假如不能完全解决问题,起码你要问自己能够做些什么。 ... 阅读全文
posted @ 2008-03-27 18:06 至尊王者 阅读(394) 评论(0) 推荐(0) 编辑
摘要:回忆往事 Windows® 产品的预发布版本遵循相当标准的过程。首先是 alpha 版本,该版本供内部使用,并有可能与 Windows 产品团队之外的软件开发合作伙伴共享。 alpha 版本之后自然是 beta 版本,该版本将发送给更多用户使用。alpha 和 beta 版本用户之间的主要区别在于:beta 版本的发布对象包括非软件开发人员,例如喜欢测试预发布软件的最终用户,以及希望率先开始... 阅读全文
posted @ 2008-03-26 18:40 至尊王者 阅读(305) 评论(0) 推荐(0) 编辑
摘要:fs2you.com是一个网盘,速度还是可以的,所以很多朋友会将软件或者资料上传到这里面来,但是我们会发现在fs2you.com下载有一些问题,就是有些时候我们下载的时候会要求安装RaySource这个软件。怎么样才能不安装RaySource就可以下载呢? 1、如果是直接下载的情况 如: 那么直接用下载工具下载那个链接就可以了。 2、如果需要安装RaySource的情况 如: 这个... 阅读全文
posted @ 2008-03-25 14:20 至尊王者 阅读(23498) 评论(12) 推荐(0) 编辑
摘要:环境:VS2005字体:Verdana, 10pt普通文本背景色:238,239,230 (#E6EFEE)EditPlus 也可以照此配置。这个是我的最新字体探索结果:Consolas 10pt bold + ClearType font 支持(XP, 2003) 阅读全文
posted @ 2008-03-21 15:58 至尊王者 阅读(545) 评论(0) 推荐(0) 编辑
摘要:这个程序创建并渲染几种不同的能够使用D3DXCreate*函数创建的3D物体。 Uses a left-handed coordinate system to create a mesh containing an axis-aligned box.HRESULT D3DXCreateBox( LPDIRECT3DDEVICE9 pDevice, FLOAT Width, FLOAT Hei... 阅读全文
posted @ 2008-03-20 21:28 至尊王者 阅读(1072) 评论(0) 推荐(0) 编辑
摘要:这个程序使用D3DXCreateTeapot函数创建并用DrawSubset函数渲染一个纺纱茶壶。 Uses a left-handed coordinate system to create a mesh containing a teapot.HRESULT D3DXCreateTeapot( LPDIRECT3DDEVICE9 pDevice, LPD3DXMESH * ppMesh, ... 阅读全文
posted @ 2008-03-20 21:27 至尊王者 阅读(1014) 评论(0) 推荐(0) 编辑
摘要:立方体——只比三角形稍微复杂一点,这个程序渲染一个线框立方体。 这个简单的绘制和渲染立方体的程序的运行结果如下图所示: 源程序: /************************************************************************************** Renders a spinning cube in wireframe mode. D... 阅读全文
posted @ 2008-03-20 21:27 至尊王者 阅读(480) 评论(0) 推荐(0) 编辑
摘要:3.2 渲染状态 Direct3D提供了多种渲染状态,它影响几何物体怎样被渲染。渲染状态有默认值,因此假如你的应用程序需要不同于默认设置的渲染时,你仅仅改变它即可。一种渲染效果会一直起作用,直到你下一次改变渲染状态为止。为了设置一个渲染状态,我们使用下面的方法: Sets a single device render-state parameter.HRESULT SetRenderState( ... 阅读全文
posted @ 2008-03-20 21:27 至尊王者 阅读(1060) 评论(1) 推荐(0) 编辑
摘要:3.1顶点/索引缓存 顶点和索引缓存有相似的接口并且共享相似的方法;因此我们把它们合在一起讲解。一个顶点缓存是一块连续的存储了顶点数据的内存。同样的,一个索引缓存是一块连续的存储了索引数据的内存。我们使用顶点和索引缓存保存我们的数据是因为它们能被放置在显存中。渲染显存中的数据要比渲染系统内存中的数据快的多。 在代码中,一个顶点缓存是通过IDirect3DVertexBu... 阅读全文
posted @ 2008-03-20 21:26 至尊王者 阅读(2303) 评论(0) 推荐(0) 编辑
摘要:聚光灯示例,截图: 源代码: /************************************************************************************** Demonstrates using a spot light with D3DX objects. You can move the spotlight around the sce... 阅读全文
posted @ 2008-03-20 21:25 至尊王者 阅读(689) 评论(0) 推荐(0) 编辑
摘要:点光源示例,截图: 源代码: /************************************************************************************** Demonstrates using a point light with D3DX objects. You can orbit the scene using the left a... 阅读全文
posted @ 2008-03-20 21:25 至尊王者 阅读(451) 评论(0) 推荐(0) 编辑
摘要:平行光示例: The GetAsyncKeyState function determines whether a key is up or down at the time the function is called, and whether the key was pressed after a previous call to GetAsyncKeyState. Syntax SHORT... 阅读全文
posted @ 2008-03-20 21:24 至尊王者 阅读(535) 评论(0) 推荐(0) 编辑
摘要:5.4光源 Direct3D支持三种类型的光源。 点光源——这种光源在世界坐标中有一个位置且向所有方向上都照射光线。 方向光源——这种光源没有位置但是向指定方向发出平行光线。 聚光灯——这种类型的光源和手电筒的光类似;它有位置并且发出的光在指定方向上按照圆锥形照射。这个圆锥形有两个角度,θ和φ。角度θ描述内圆锥,φ描述外圆锥。 在代码中一个灯光资源是通过D3DLIGHT9结构来表现的。 ... 阅读全文
posted @ 2008-03-20 21:24 至尊王者 阅读(2163) 评论(0) 推荐(0) 编辑
摘要:为了提高场景的真实性,我们可以为其加入灯光。灯光也能帮助表现物体的立体感以及物体的实体形状。当使用灯光时,我们不再自己指定顶点的颜色;Direct3D中每个顶点都通过灯光引擎来计算顶点颜色,该计算是基于定义的灯光资源,材质以及灯光资源关心的表面方向。通过灯光模型计算顶点颜色会得到更真实的场景。 5.1灯光的组成 在Direct3D灯光模型中,灯光是通过灯光资源的三个成员之一来照射的,... 阅读全文
posted @ 2008-03-20 21:24 至尊王者 阅读(1777) 评论(0) 推荐(0) 编辑
摘要:6.4 Mipmaps 就象6.3节所说的,在屏幕上的三角形和纹理三角形通常是不一样大的。为了使这个大小差异变小,我们为纹理创建mipmaps链。也就是说将一个纹理创建成连续的变小的纹理,但是对它们等级进行定制过滤,因此对我们来说保存细节是很重要的(如图6.4)。 6.4.1 Mipmaps过滤器 mipmap过滤器是被用来控制Direct3D使用mipmaps的。设置mipmap... 阅读全文
posted @ 2008-03-20 21:23 至尊王者 阅读(2836) 评论(0) 推荐(0) 编辑
摘要:纹理映射是一种允许我们为三角形赋予图象数据的技术;这让我们能够更细腻更真实地表现我们的场景。例如,我们能够创建一个立方体并且通过对它的每个面创建一个纹理来把它变成一个木箱(如图6.1)。 在Direct3D中一个纹理是通过IDirect3DTexture9接口来表现的。一个纹理是一个类似像素矩阵的表面它能够被映射到三角形上。 6.1 纹理坐标 Direct3D使用一个纹理坐标系统,它是由用水平方... 阅读全文
posted @ 2008-03-20 21:22 至尊王者 阅读(2817) 评论(0) 推荐(0) 编辑
摘要:该例程演示了如何设置纹理寻址模式。 截图: 源程序: /************************************************************************************** Allows the user to switch between the different texture address modes to see what ... 阅读全文
posted @ 2008-03-20 21:22 至尊王者 阅读(485) 评论(0) 推荐(0) 编辑
摘要:该例程演示了怎样对一个立方体映射板条纹理。 截图: vertex.h: #ifndef __VERTEX_H__#define __VERTEX_H__class cTextureVertex{public:float m_x, m_y, m_z;float m_nx, m_ny, m_nz;float m_u, m_v; // texture coordinates cTextureVe... 阅读全文
posted @ 2008-03-20 21:21 至尊王者 阅读(868) 评论(0) 推荐(0) 编辑
摘要:使用DirectX纹理工具创建Alpha通道 绝大多数普通图象文件格式没有存储alpha信息,在这一部分我们给你演示怎样使用DirectX纹理工具来创建一个带alpha通道的DDS文件。DDS文件是一个为DirectX应用程序和纹理设置的图象格式。DDS文件能够利用D3DXCreateTextureFromFile函数读进纹理中,就象bmp和jpg文件一样。DirectX纹理工具被... 阅读全文
posted @ 2008-03-20 21:21 至尊王者 阅读(1632) 评论(0) 推荐(0) 编辑
摘要:我们介绍一种叫做混合(blending)的技术,它允许我们混合像素,我们通常用已经光栅化的像素光栅化同一位置的像素。换句话说就是我们在图元上混合图元,这种技术允许我们完成多种特效。 7.1混合因素 观察图7.1,我们将一个红色的茶壶绘制在一个木质背景上。 假设想让茶壶有一个透明度,以便我们能够透过茶壶看见背景(如图7.2)。 我们怎样才能实现这个效果呢?我们只需要在木箱子上光栅化茶壶三角形,我... 阅读全文
posted @ 2008-03-20 21:20 至尊王者 阅读(3967) 评论(0) 推荐(0) 编辑
摘要:tinyxml是个高效精简的xml解析开源代码. 针对tinyxml直接使用对于对xml不是很熟悉的入门新手来说,有些概念难以理解,因此我将其封装后,供大家使用. 头文件: #include #include "tinyxml.h" using namespace std; class CXML { public: CXML(void) { } ~CXML(void... 阅读全文
posted @ 2008-03-20 09:47 至尊王者 阅读(3616) 评论(0) 推荐(0) 编辑
摘要:Download the Debugging Tools for Windows 32-bit Version Current Release version 6.8.4.0 - October 18, 2007Install 32-bit version 6.8.4.0 [16.7 MB] Previous Release version 6.7.5.1 - July 3, 2007Instal... 阅读全文
posted @ 2008-03-17 15:55 至尊王者 阅读(4556) 评论(0) 推荐(0) 编辑
摘要:1.5初始化Direct3D实例 在本例程中,初始化了一个Direct3D应用程序并用黑色填充显示窗口(如图1.7)。 图1.7 所有的应用程序都包含了d3dUtility.h和d3dUtility.cpp这两个文件,它们所包含的函数实现了所有Direct3D应用程序都要去做的一些常见的功能。例如:创建一个窗口、初始化Direct3D、进入程序的消息循环等。 1.5.1d3dUtility.h... 阅读全文
posted @ 2008-03-16 13:24 至尊王者 阅读(1566) 评论(0) 推荐(0) 编辑
摘要:1.4 初始化Direct3D 下面几点说明怎样初始化Direct3D。根据下边的步骤你能初始化Direct3D: 1.获得一个IDirect3D9接口指针。这个接口用于获得物理设备的信息和创建一个IDirect3DDevice9接口,它是一个代表我们显示3D图形的物理设备的C++对象。 2.检查设备能力(D3DCAPS9),搞清楚主显卡是否支持硬件顶点处理。我们需要知道假如它能支持,我们就能创建... 阅读全文
posted @ 2008-03-16 13:23 至尊王者 阅读(3780) 评论(0) 推荐(0) 编辑
摘要:1.3.2 Multisampling由于使用像素矩阵来表示图像,在显示时会出现锯齿状,Multisampling就是使其变得平滑的技术。它的一种最普通的用法即为——全屏抗锯齿(看图1.3)。 D3DMULTISAMPLE_TYPE枚举类型使我们可以指定全屏抗锯齿的质量等级: D3DMULTISAMPLE_NONE——不使用全屏抗锯齿。 D3DMULTISAMPLE_1_SAMPLE…D3DM... 阅读全文
posted @ 2008-03-16 13:23 至尊王者 阅读(2582) 评论(1) 推荐(0) 编辑
摘要:Direct3D是一种低层图形API,它能让我们利用3D硬件加速来渲染3D世界。我们可以把Direct3D看作是应用程序和图形设备之间的中介。例如通知图形设备清空屏幕,应用程序将调用Direct3D的IDirect3DDevice9::Clear方法。图1.1显示了应用程序、Direct3D和图形设备之间的关系。 图1.1中Direct3D所表示的是Direct3D中已定义的,供程序员使用的Di... 阅读全文
posted @ 2008-03-16 13:22 至尊王者 阅读(2726) 评论(0) 推荐(0) 编辑
摘要:平面 D3DX平面 在代码中描述一个平面:仅仅需要一个法向量n和常数d就可以了。因此我们就使用一个4D向量(我们记录成(n, d))来实现它。D3DX库中用如下的结构来定义一个平面:typedef struct D3DXPLANE{#ifdef __cpluspluspublic: D3DXPLANE() {} D3DXPLANE( CONST FLOAT* ); D3DXPL... 阅读全文
posted @ 2008-03-16 13:22 至尊王者 阅读(1228) 评论(0) 推荐(0) 编辑
摘要:基本变换 当用Direct3D编程时,我们使用4×4矩阵来进行矩阵变换。用它的原因是:我们设置一个4×4矩阵X是为了更精确的描述矩阵变换。同样我们设置一个相匹配的点或者把向量的分量放置到一个1×4的行矩阵V中。VX的乘积返回一个新的向量V’。例如:让X沿着x轴平移10个单位同时V = [2, 6, –3, 1],乘积VX = V’= [12, 6, –3, 1]。 有一些东西需要阐明。我们使用4×... 阅读全文
posted @ 2008-03-16 13:20 至尊王者 阅读(1284) 评论(0) 推荐(0) 编辑
摘要:矩阵 在这一部分我们关注的焦点是数学中的矩阵。它们在3D图形学中的应用将在下一部分讲解。 一个m×n的矩阵是由m行和n列的数字组成的矩阵列。行和列的数字就是这个矩阵的维数。我们通过写在下方的数字识别矩阵清单,数字中的第一个表示行第二个表示列。例如下边的M是3×3矩阵,B是2×4矩阵, C是3×2矩阵。 我们使用加粗的大写字母表示矩阵。有时一个矩阵只包含一行或者一列。我们用行矩阵和列矩阵这个特殊的... 阅读全文
posted @ 2008-03-16 13:20 至尊王者 阅读(1313) 评论(0) 推荐(0) 编辑
摘要:向量相加 我们能够通过分别把两个向量的各个分量相加得到向量之和,注意在相加之前必须保证它们有相同的维数。 u + v = (ux+ vx, uy+ vy, uz+ vz) 图5显示的是几何学上的向量相加。 两个向量相加的代码,我们使用重载的加法操作符: D3DXVECTOR3 u(2.0f, 0.0f, 1.0f); D3DXVECTOR3 v(0.0f, -1.0f, 5.0f); // (2... 阅读全文
posted @ 2008-03-16 13:20 至尊王者 阅读(978) 评论(1) 推荐(0) 编辑
摘要:三维空间中的向量 几何学中,我们用有向线段表示向量,如图1。向量的两个属性是他的长度和他的顶点所指的方向。因此,可以用向量来模拟既有大小又有方向的物理模型。例如,以后我们要实现的粒子系统。我们用向量来模拟粒子的速度和加速度。在3D计算机图形学中我们用向量不仅仅模拟方向。例如我们常常想知道光线的照射方向,以及在3D世界中的摄象机。向量为在3维空间中表示方向的提供了方便。 向量与位置无关。有同样长... 阅读全文
posted @ 2008-03-16 13:19 至尊王者 阅读(1212) 评论(0) 推荐(0) 编辑
摘要:2.3.5光照(Lighting)光照定义在世界坐标系中,但必须变换到视图坐标系才可使用。视图坐标系中光源给物体施加的光照大大增加了场景中物体的真实性。 2.3.6裁剪(Clipping) 我们删除那些超出了可视体范围的几何图形的过程就叫做裁剪。这会出现三种情况: 完全包含——三角形完全在可视体内,这会保持不变,并进入下一级。 完全在外——三角形完全在可视体外部,这将被删除。 部分在内(部分在外... 阅读全文
posted @ 2008-03-16 13:18 至尊王者 阅读(1583) 评论(0) 推荐(0) 编辑
摘要:2.3 渲染管线 一旦我们描述几何学上的3D场景和设置了虚拟照相机,我们要把这个场景转换成2D图象显示在显示器上。这一系列必须完成的操作就叫做渲染管线。图2.7展示了一个简化的渲染管线,随后将详细解释图中的每一部分。 渲染管线中的许多级都是从一个坐标系到另一个坐标的几何变换。这些变换都通过矩阵变换来实现。Direct3D为我们进行变换计算并且如果显卡支持硬件变换的话那就更有利了。使用Dir... 阅读全文
posted @ 2008-03-16 13:18 至尊王者 阅读(1241) 评论(0) 推荐(0) 编辑
摘要:这次主题是渲染管线。它是用来创建为3D世界进行几何描述的2D图形并设定一个虚拟照相机确定这个世界中哪一部分将被透视投影到屏幕上。 \ 2.1表现模型一个场景是多个物体或模型的集合。一个物体可以用三角形网格(triangle mesh)来近似表示,如图2.2所示。由三角形网格建立一个物体,我们称之为建模。3D世界中最基本的图元就是三角形,但是Direct3D也支持点图元和线图元但我们都不常用到。 ... 阅读全文
posted @ 2008-03-16 13:18 至尊王者 阅读(701) 评论(0) 推荐(0) 编辑
摘要:这个程序创建并渲染几种不同的能够使用D3DXCreate*函数创建的3D物体。 Uses a left-handed coordinate system to create a mesh containing an axis-aligned box.HRESULT D3DXCreateBox( LPDIRECT3DDEVICE9 pDevice, FLOAT Width, FLOAT He... 阅读全文
posted @ 2008-03-16 10:51 至尊王者 阅读(608) 评论(0) 推荐(0) 编辑
摘要:这个程序使用D3DXCreateTeapot函数创建并用DrawSubset函数渲染一个纺纱茶壶。 Uses a left-handed coordinate system to create a mesh containing a teapot.HRESULT D3DXCreateTeapot( LPDIRECT3DDEVICE9 pDevice, LPD3DXMESH * ppMesh,... 阅读全文
posted @ 2008-03-16 10:50 至尊王者 阅读(525) 评论(0) 推荐(0) 编辑
摘要:立方体——只比三角形稍微复杂一点,这个程序渲染一个线框立方体。 这个简单的绘制和渲染立方体的程序的运行结果如下图所示: 源程序: /************************************************************************************** Renders a spinning cube in wireframe mode. ... 阅读全文
posted @ 2008-03-16 10:50 至尊王者 阅读(376) 评论(0) 推荐(0) 编辑
摘要:Direct3D提供了多种渲染状态,它影响几何物体怎样被渲染。渲染状态有默认值,因此假如你的应用程序需要不同于默认设置的渲染时,你仅仅改变它即可。一种渲染效果会一直起作用,直到你下一次改变渲染状态为止。为了设置一个渲染状态,我们使用下面的方法: Sets a single device render-state parameter.HRESULT SetRenderState( D3DRENDE... 阅读全文
posted @ 2008-03-16 10:49 至尊王者 阅读(1466) 评论(0) 推荐(0) 编辑
摘要:顶点和索引缓存有相似的接口并且共享相似的方法;因此我们把它们合在一起讲解。一个顶点缓存是一块连续的存储了顶点数据的内存。同样的,一个索引缓存是一块连续的存储了索引数据的内存。我们使用顶点和索引缓存保存我们的数据是因为它们能被放置在显存中。渲染显存中的数据要比渲染系统内存中的数据快的多。 在代码中,一个顶点缓存是通过IDirect3DVertexBuffer9接口来定义的。类似的,一个... 阅读全文
posted @ 2008-03-16 10:48 至尊王者 阅读(491) 评论(0) 推荐(0) 编辑
摘要:本文主要介绍并行端口的结构以及简单的对并口的读、写并以及如何获得端口的状态。 并行接口的分类: SPP(标准并行接口) ,EPP(增强型并行接口),ECP(扩展型并行端口) 标准并行端口(SPP)也是最早的端口定义,主要功能如下,1:并行端口提供了8个数据线以进行并行的字节传输,2:计算机能够通过数据线向打印机发送选能信号,以通知打印机已经准备好接收数据,3:打印机招收到数据后,向计算机... 阅读全文
posted @ 2008-03-16 09:44 至尊王者 阅读(1281) 评论(0) 推荐(0) 编辑
摘要:@echo off setlocal enabledelayedexpansion set b=/-\ /-\ ** set 速度=1 set 退格= :b for /l %%i in (0,1,200) do call :a %%i goto :b :a set/a a=%1%%10 set/a c=%a%%%4 if %a% EQU 0 set/p=▌nul set/p=%退格%<nul g... 阅读全文
posted @ 2008-03-16 09:43 至尊王者 阅读(295) 评论(0) 推荐(0) 编辑
摘要://以下代码来自网上,需DDK、SDK支持 #include #include #include #include #include #include #include extern "C" { #include "hidsdi.h" } DEFINE_GUID(GUID_DEVINTERFACE_DISK, ... 阅读全文
posted @ 2008-03-16 09:39 至尊王者 阅读(2721) 评论(0) 推荐(0) 编辑