CodeForge.comFree Open Source Codes Forge and Sharing |
///
/// @file wd_dev.h
/// @brief 设备和驱动相关.如果你直接包含这个头文件,
/// 在包含之前必须包含DDK相关头文件.(你可以
/// 选择WDM或者IFS或者NDIS相关头文件.)
/// @author tan wen 谭文
/// @date 2005-12-20
///
#ifndef _WD_DEV_HEADER_
#define _WD_DEV_HEADER_
#include "wdf.h" //< 依赖wdf.h
#include "wd_mem.h" //< 依赖mem.h
#include "wd_ustr.h" //< 依赖ustr.h
typedef OBJECT_NAME_INFORMATION wd_obj_name;
typedef DEVICE_TYPE wd_dev_type;
typedef HANDLE wd_handle;
typedef ACCESS_MASK wd_mask;
// 你必须定义一个g_cdo,如果你为你的驱动定义了一个
// 控制设备的话.如果你没有控制设备,你可以定义一个
// g_cdo.并设置为空.其他几个函数也是类似的.如果全
// 局变量没有定义,不能通过编译连接.如果没有正确赋
// 值,调用以下函数会得到错误结果.
extern wd_dev *g_cdo;
_inline wd_bool wd_is_my_cdo(wd_dev *dev)
{
return (dev == g_cdo);
}
extern wd_drv *g_drv;
_inline wd_bool wd_is_my_drv(wd_drv *drv)
{
return (g_drv == drv);
}
// old
enum {
wdf_dev_secure_open = FILE_DEVICE_SECURE_OPEN
};
// old
enum {
wd_dev_disk_fs = FILE_DEVICE_DISK_FILE_SYSTEM,
wd_dev_cdrom_fs = FILE_DEVICE_CD_ROM_FILE_SYSTEM,
wd_dev_network_fs = FILE_DEVICE_NETWORK_FILE_SYSTEM
};
_inline wd_void wd_obj_ref(wd_void *obj)
{ ObReferenceObject(obj); }
_inline wd_void wd_obj_deref(wd_void *obj)
{ ObDereferenceObject(obj); }
_inline wd_void * wd_dev_ext(wd_dev *dev)
{ return (dev->DeviceExtension); }
_inline wd_dev * wd_dev_attached(wd_dev *dev)
{ return dev->AttachedDevice; }
typedef VPB wd_vpb;
_inline wd_vpb * wd_dev_vbp(wd_dev *dev)
{ return dev->Vpb; }
_inline wd_dev * wd_vbp_dev(wd_vpb *vpb)
{ return vpb->DeviceObject; }
_inline wd_stat wd_dev_create(in wd_drv *drv,
in wd_size ext_size,
in wd_ustr *name optional,
in wd_dev_type type,
in wd_ulong dev_chars,
in wd_bool exclusive,
...
...
... to be continued.
This is a preview. To get the complete source file,
please click here to download the whole source code package.
| Name | Size | Date |
| 0.00 B | 19% 13-10-05 | |
| 0.00 B | 22% 27-07-06 | |
| 0.00 B | 17% 08-12-05 | |
| 29.50 kB | 19-10-05 16:30 | |
| 32.50 kB | 10-01-06 10:39 | |
| 33.50 kB | 10-01-06 12:03 | |
| 40.00 kB | 01-11-05 17:36 | |
| 33.50 kB | 27-07-06 14:26 | |
| 30.00 kB | 13-10-05 11:52 | |
| 29.50 kB | 13-10-05 11:53 | |
| 0.00 B | 17% 13-10-05 | |
| 2.36 kB | 08-03-06 09:05 | |
| 3.38 kB | 08-03-06 09:05 | |
| 3.40 kB | 08-03-06 09:03 | |
| 2.02 kB | 02-03-06 17:48 | |
| 374.00 B | 07-09-05 15:41 | |
| 966.00 B | 06-03-06 23:41 | |
| 312.67 kB | 08-03-06 09:25 | |
| 108.00 B | 02-03-06 16:30 | |
| 6.15 kB | 08-03-06 09:05 | |
| 3.23 kB | 08-03-06 09:03 | |
| 12.88 kB | 08-03-06 09:05 | |
| 1.98 kB | 08-03-06 09:03 | |
| 5.49 kB | 08-03-06 09:05 | |
| 5.34 kB | 08-03-06 09:03 | |
| 8.14 kB | 08-03-06 09:05 | |
| 2.38 kB | 08-03-06 09:03 | |
| 3.40 kB | 08-03-06 09:03 | |
| 3.23 kB | 08-03-06 09:03 | |
| 1.98 kB | 08-03-06 09:03 | |
| 5.34 kB | 08-03-06 09:03 | |
| 2.38 kB | 08-03-06 09:03 | |
| 4.02 kB | 02-03-06 17:29 | |
| 14.93 kB | 28-02-06 17:57 | |
| 904.00 B | 20-12-05 19:26 | |
| 1.01 kB | 21-12-05 15:07 | |
| 6.97 kB | 28-02-06 14:45 | |
| 1.55 kB | 28-02-06 09:40 | |
| 2.07 kB | 21-12-05 15:01 | |
| 1.59 kB | 20-12-05 18:58 | |
| 2.03 kB | 04-03-06 10:36 | |
| 2.38 kB | 20-12-05 19:54 | |
| 3.57 kB | 04-03-06 10:42 | |
| 2.32 kB | 23-12-05 13:33 | |
| 312.67 kB | 08-03-06 09:25 | |
| 258.02 kB | 08-03-06 09:25 | |
| 2.05 kB | 08-03-06 09:07 | |
| 2.89 kB | 08-03-06 09:24 | |
| 374.00 B | 07-09-05 15:41 | |
| 712.00 B | 06-03-06 23:55 | |
| 20.00 kB | 07-03-06 00:10 | |
| 179.00 B | 07-03-06 00:08 | |
| 3.17 kB | 08-03-06 09:26 | |
| 2.84 kB | 08-03-06 09:24 | |
| 374.00 B | 07-09-05 15:41 | |
| 710.00 B | 08-03-06 09:24 | |
| 20.50 kB | 08-03-06 09:26 | |
| 177.00 B | 08-03-06 08:55 | |
| 374.00 B | 07-09-05 15:41 | |
| 949.00 B | 02-03-06 16:30 | |
| 258.02 kB | 08-03-06 09:25 | |
| 108.00 B | 02-03-06 15:45 | |
| 3.63 kB | 04-03-06 10:34 | |
| 4.02 kB | 02-03-06 17:29 | |
| 2.30 kB | 02-03-06 17:48 | |
| 14.93 kB | 28-02-06 17:57 | |
| 7.12 kB | 08-03-06 09:03 | |
| 904.00 B | 20-12-05 19:26 | |
| 1.01 kB | 21-12-05 15:07 | |
| 6.97 kB | 28-02-06 14:45 | |
| 2.68 kB | 08-03-06 09:03 | |
| 1.55 kB | 28-02-06 09:40 | |
| 2.07 kB | 21-12-05 15:01 | |
| 1.59 kB | 20-12-05 18:58 | |
| 10.22 kB | 04-03-06 10:35 | |
| 2.03 kB | 04-03-06 10:36 | |
| 2.38 kB | 20-12-05 19:54 | |
| 21.22 kB | 08-03-06 09:03 | |
| 3.57 kB | 04-03-06 10:42 | |
| 8.15 kB | 08-03-06 09:03 | |
| 2.32 kB | 23-12-05 13:33 | |
| 1.47 kB | 08-03-06 09:24 | |
| 346.00 B | 08-03-06 08:52 | |
| 17.27 kB | 08-03-06 09:36 | |
| 297.71 kB | 26-07-06 17:28 | |
| 1.30 kB | 27-07-06 14:41 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 05-09-08 09:10 |