zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
阅读:1013回复:3

我写的禁止A盘的代码,不成功.大家帮我看看

楼主#
更多 发布于:2005-03-21 14:35
// LockA.c
// 03-21-2005 <Jason Zhang>
// Copyright &#65385; 2005 <SCT SH>

#define  _LOCKA_SYS_
#include <ddk\\ntddk.h>
#include \"LockA.h\"
#define NAME L\"\\Device\\Floppy0\"

// ============================================================
// GLOBAL DATA
// ===========================================================
PDRIVER_DISPATCH g_p_real_dispatch_device_control = NULL;
PDRIVER_OBJECT g_p_target_driver_object = NULL;
// =================================================================
// DISCARDABLE FUNCTIONS
// =================================================================

NTSTATUS DriverEntry      (PDRIVER_OBJECT  pDriverObject,
                           PUNICODE_STRING pusRegistryPath);

NTSTATUS MyControl        (PDEVICE_OBJECT Device_Object,PIRP irp);
// -----------------------------------------------------------------

#ifdef ALLOC_PRAGMA
#pragma alloc_text (INIT, DriverEntry)

#endif



//==================================================================
//MyControl
//==================================================================
NTSTATUS MyControl(PDEVICE_OBJECT Device_Object,PIRP irp)
{
irp->IoStatus.Status = STATUS_ACCESS_DENIED;
irp->IoStatus.Information = 0;
IoCompleteRequest(irp, IO_NO_INCREMENT);

return STATUS_ACCESS_DENIED;

}

//------------------------------------------------------------------
void DriverUnload (PDRIVER_OBJECT pDriverObject)
    {
    return;
    }

// =================================================================
// DRIVER INITIALIZATION
// =================================================================

// ---------------------------------------------------------

NTSTATUS DriverEntry (PDRIVER_OBJECT  pDriverObject,
                      PUNICODE_STRING pusRegistryPath)
    {
    PDRIVER_DISPATCH *ppdd;

UNICODE_STRING target_device_name;
PDEVICE_OBJECT target_device_object;
PFILE_OBJECT target_file_object;
NTSTATUS status;
RtlInitUnicodeString(&target_device_name, NAME);
status = IoGetDeviceObjectPointer(
&target_device_name,
0,
&target_file_object,
&target_device_object
);
if (!NT_SUCCESS(status))
{
KdPrint((\"IoGetDeviceObjectPointer return %Xn\", status));
return status;
}
g_p_target_driver_object = target_device_object->DriverObject;
if (!g_p_target_driver_object)
{
KdPrint((\"target_device_object->DriverObject == NULLn\"));
return STATUS_UNSUCCESSFUL;
}

g_p_real_dispatch_device_control = g_p_target_driver_object->MajorFunction[IRP_MJ_DEVICE_CONTROL];
ppdd = g_p_target_driver_object->MajorFunction;

        ppdd [IRP_MJ_CREATE                  ] =MyControl;
        ppdd [IRP_MJ_READ                    ] =MyControl;
        ppdd [IRP_MJ_DEVICE_CONTROL          ] =MyControl;
        ppdd [IRP_MJ_INTERNAL_DEVICE_CONTROL ] =MyControl;
        ppdd [IRP_MJ_PNP                     ] =MyControl;
        pDriverObject->DriverUnload            = DriverUnload;
  //      }
    return ns;
    }

// =================================================================
// END OF PROGRAM
// =================================================================
首先大家觉得我的思路对吗?就是通过FLOPPY0来取得指针.

我在DRIVERMONITOR里面加载,运行就显示ERROR(161),UNEXPECTED ERROR OCCURRD

[编辑 -  3/21/05 by  zhjie374]

最新喜欢:

hongsinghongsi...
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-22 10:18
各位说说话呀,期待中.....
wywwwl
驱动大牛
驱动大牛
  • 注册日期2002-08-16
  • 最后登录2018-04-07
  • 粉丝1
  • 关注0
  • 积分-10分
  • 威望135点
  • 贡献值6点
  • 好评度76点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-03-22 14:30
各位说说话呀,期待中.....


#define NAME L\"\\Device\\Floppy0\" ?
琢磨悟真知
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-22 15:40
#define NAME L\"\\\\Device\\\\Floppy0\"
游客

返回顶部