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

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

黑客论坛 - 公共交流区 - 技术交流 - 浏览 - 这些头文件去哪找啊?
用户体验升级,欢迎参与!        您是本贴第 89 位浏览者 本版版主

帖子主题: 这些头文件去哪找啊?

  • cricketol
  • 等级: 银牌VIP
  • 发贴: 49 贴
  • 货币: 0 金币
  • 积分: 280 分
  • 经验: 160 点
  • 体力: 2030 点
  • 注册: 2006-02-09
这些头文件去哪找啊?
编译驱动的时候需要的,我翻过DDK了,里面没有....
#include "DrvMain.h"
#include "WDMDefault.h"
#include "PnP\PnP.h"
#include "PM.h"

哪里能找到它们?
2008-8-15 11:30:31
  • cricketol
  • 等级: 银牌VIP
  • 发贴: 49 贴
  • 货币: 0 金币
  • 积分: 280 分
  • 经验: 160 点
  • 体力: 2030 点
  • 注册: 2006-02-09
Re:这些头文件去哪找啊?
我编译个驱动,加上wdm.h头文件就不生成obj文件了
怎么回事?
2008-8-15 15:55:32
  • cricketol
  • 等级: 银牌VIP
  • 发贴: 49 贴
  • 货币: 0 金币
  • 积分: 280 分
  • 经验: 160 点
  • 体力: 2030 点
  • 注册: 2006-02-09
Re:这些头文件去哪找啊?
#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:06:07