黑客防线,在攻与防的对立统一中寻求突破!2001年创刊的黑客技术专业刊物!

设为首页
收藏本站
联系我们
网站导航


黑客论坛 - 公共交流区 - 技术交流 - 浏览 - 编译驱动不生成OBJ......来看看怎么回事
您是本贴第 127 位浏览者 本版版主
浏览: 编译驱动不生成OBJ......来看看怎么回事
  • cricketol
  • 等级: 银牌VIP
  • 发贴: 49 贴
  • 货币: 0 金币
  • 积分: 280 分
  • 经验: 160 点
  • 体力: 2030 点
  • 注册: 2006-02-09
编译驱动不生成OBJ......来看看怎么回事
#include <ntddk.h>
#include <wdm.h>
NTSTATUS Driverlnitialize ( PDRIVER_OBJECT pDriverObject ,
                                                   PUNICODE_STRING pusRegistryPath) ;
NTSTATUS DriverEntry ( PDRIVER_OBJECT pDriverObject,
                                          PUNICODE_STRING pusRegistryPath) ;

PDEVICE_OBJECT gpDeviceObject=NULL;
PDEVICE_CONTEXT gpDeviceContext=NULL;
// DEVICE REQUEST HANDLER
NTSTATUS DeviceDispatcher(PDEVICE_CONTEXT pDeviceContext, PIRP plrp)
{
        PIO_STACK_LOCATION pisl;
        DWORD dlnfo = 0;
        NTSTATUS ns = STATUS_NOT_IMPLEMENTED;
        pisl = loGetCurrentlrpStackLocation(plrp);
        switch(pisl->MajorFunction)  
        {              
        case IRP_MJ_CREATE:
                break;
        case IRP_MJ_CLEANUP:
                break;
        case IRP_MJ_CLOSE:          
                        ns = STATUS_SUCCESS;          
                        break;
        }
        plrp->lostatus.Status = ns;    
        plrp->lostatus.Information = dlnfo;
        loCompleteRequest(plrp, IO_NO_INCREMENT);
        return ns;
}              
// DRIVER REQUEST HANDLER
NTSTATUS DriverDispatcher(PDEVICE_OBJECT pDeviceObject,
                                                  PIRP                         plrp)
{              
        return (pDeviceObject == gpDeviceObject
                ? DeviceDispatcher(gpDeviceContext,plrp)
                : STATUS_INVALID_PARAMETER_1 ) ;
}              
//
void DriverUnload( PDRIVER_OBJECT pDriverObject)
{
        loDeleteSymbolicLink (kusSymbolicLinkName) ;
        loDeleteDevice(gpDeviceObject) ;
        return;
}
// DRIVER INITIALIZATION
NTSTATUS Driverlnitialize( PDRIVER_OBJECT pDriverObject,
                                                   PUNICODE_STRING pusRegistryPath)
{
        PDEVICE_OBJECT pDeviceObject = NULL;
        NTSTATUS ns = STATUS_DEVICE_CONFIGURATION_ERROR;
        if ( (ns = loCreateDevice (pDriverObject, DEVICE_CONTEXT_,
                kusDeviceName, FILE_DEVICE_CUSTOM,
                0, FALSE, SpDeviceObject) )
                == STATUS_SUCCESS)
                {
                if ( (ns = loCreateSymbolicLink (ScusSynibolicLinkName,
                        &usDeviceName) )
                == STATUS_SUCCESS)
                {
                        gpDeviceObject = pDeviceObject;
                        gpDeviceContext = pDeviceObject->DeviceExtension;
                        gpDeviceContext->pDriverObject = pDriverObject;
                        gpDeviceContext->pDeviceObject = pDeviceObject;
                }
                else
                {
                        loDeleteDevice (pDeviceObject);
                }
        }
        return ns;
}
        
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject,
                                         PUNICODE_STRING pusRegistryPath)
{
        PDRIVER_DISPATCH *ppdd;
        NTSTATUS ns = STATUS_DEVICE_CONFIGURATION_ERROR;
        if ( (ns = Driverlnitialize (pDriverObject , pusRegistryPath) )
                == STATUS_SUCCESS)
                {
                ppdd = pDriverObject->MajorFunction;
                ppdd [ IRP_MJ_CREATE ] =
                        ppdd [IRP_MJ_CREATE_NAMED_PIPE ] =
                        ppdd [IRP_MJ_CLOSE ] =
                        ppdd [IRP_MJ_READ ] =
                        ppdd [ IRP_MJ_WRITE ] =
                        ppdd [IRP_MJ_QUERY_INFORMATION ] =
                        ppdd [ IRP_MJ_SET_INFORMATION ] =
                        ppdd [IRP_MJ_QUERY_EA ] =
                        ppdd [ IRP_MJ_SET_EA ] =
                        ppdd [ IRP_MJ_FLUSH_BUFFERS ] =
                        ppdd [IRP_MJ_QUERY_VOLUME_INFORMATION] =
                        ppdd [IRP_MJ_SET_VOLUME_INFORMATION ] =
                        ppdd [ IRP_MJ_DIRECTORY_CONTROL ] =
                        ppdd [IRP_MJ_FILE_SYSTEM_CONTROL ] =
                        ppdd [ IRP_MJ_DEVICE_CONTROL 1 =
                        ppdd [IRP_MJ_INTERNAL_DEVICE_CONTROL ] =
                        ppdd [IRP_MJ_SHUTDOWN ] =
                        ppdd [ IRP_MJ_LOCK_CONTROL ] =
                        ppdd [IRP_MJ_CLEANUP ] =
                        ppdd [ IRP_MJ_CREATE_MAILSLOT ] =
                        ppdd [IRP_MJ_QUERY_SECURITY ] =
                        ppdd [IRP_MJ_SET_SECURITY ] =
                        ppdd [ IRP_MJ_POWER ] =
                        ppdd [ IRP_MJ_SYSTEM_CONTROL ] =
                        ppdd [IRP_MJ_DEVICE_CHANGE ] =
                        ppdd [ IRP_MJ_QUERY_QUOTA ] =
                        ppdd [ IRP_MJ_SET_QUOTA ] =
                        ppdd [IRP_MJ_PNP ] = DriverDispatcher;
                pDriverObject->DriverUnload = Driver-Unload;
        }
        return ns;
}
以上的代码编译了不生成obj文件..........郁闷了一天了
大家帮我找找问题所在
2008-8-15 16:48:46
  • icesw0rd
  • 等级: 普通用户
  • 发贴: 4 贴
  • 货币: 0 金币
  • 积分: 20 分
  • 经验: 20 点
  • 体力: 755 点
  • 注册: 2008-09-06
Re:编译驱动不生成OBJ......来看看怎么回事
看编译提示,生成不了OBJ肯定会有提示问题出在哪
梦想和财富都掌握在自己手中,拼搏+奋斗是实现的唯一途径
2008-9-8 10:15:32
  • robur
  • 等级: 黑客防线技术团队
  • 发贴: 127 贴
  • 货币: 0 金币
  • 积分: 809 分
  • 经验: 562 点
  • 体力: 3850 点
  • 注册: 2003-01-19
Re:编译驱动不生成OBJ......来看看怎么回事
同意楼上,编译器没有报错??
安全三要素:有效的管理,先进的技术,威严的法律。
2008-9-8 12:47:37
  • blackice
  • 等级: 钻石VIP
  • 发贴: 31 贴
  • 货币: 0 金币
  • 积分: 292 分
  • 经验: 856 点
  • 体力: 4650 点
  • 注册: 2006-03-17
Re:编译驱动不生成OBJ......来看看怎么回事
看编译器的报错信息
编译不成功一般是编程有错误
2008-9-9 21:10:05