tycoon
驱动牛犊
驱动牛犊
  • 注册日期2007-07-25
  • 最后登录2008-02-26
  • 粉丝0
  • 关注0
  • 积分330分
  • 威望34点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
阅读:3093回复:2

请教使用wdk编译MiniFilter驱动中通信用的客户端代码出错问题,请Devia版主进来瞧瞧

楼主#
更多 发布于:2008-01-16 08:21
想把下帖中的程序编译成动态链接库,编译出错,说是FilterSendMessage and FilterConnectCommunic找不到,可我已经包含了头文件FltUser.h,郁闷啊
tycoon
驱动牛犊
驱动牛犊
  • 注册日期2007-07-25
  • 最后登录2008-02-26
  • 粉丝0
  • 关注0
  • 积分330分
  • 威望34点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-01-16 10:50
CommClient.cpp
/***********************************************************************/
#include <windows.h>
#include "FltUser.h"
#include <stdio.h>

#define COMM_PORT_NAME  L"\\CommPort"

typedef enum _READ_DIR_COMMAND {
     FStart
} READ_DIR_COMMAND;

struct READ_DIR_MESSAGE {
     READ_DIR_COMMAND Command;
};

extern "C" _declspec(dllexport) bool SendReadMessage(void)
{
    HRESULT hResult = S_OK;
    HANDLE port = INVALID_HANDLE_VALUE;
    DWORD bytesReturned = 0;
    READ_DIR_MESSAGE command;

    command.Command = FStart;
    hResult = FilterConnectCommunicationPort(L"\\CommPort", 0,NULL,0,NULL,&port );

    if (IS_ERROR( hResult )) {

        printf( "Could not connect to filter: 0x%08x\n", hResult );
        return 0;
    }
    else
    {
        printf("connect ok \n");
    }

    /*hResult = FilterSendMessage( port, &command, sizeof(READ_DIR_COMMAND), 0, 0, &bytesReturned ); */

    
    return TRUE;
};

Sources
/*****************************************************************************/

TARGETNAME=CommClient

TARGETPATH=obj

TARGETTYPE=DYNLINK

UMTYPE=windows


USE_MSVCRT=1


#TARGETLIBS=$(TARGETLIBS) \

#           $(IFSKIT_LIB_PATH)\fltLib.lib

TARGETLIBS=$(TARGETLIBS)                                   \
               $(IFSKIT_LIB_PATH)\fltLib.lib                   \
               $(SDK_LIB_PATH)\kernel32.lib                    \
               $(SDK_LIB_PATH)\advapi32.lib

INCLUDES=$(INCLUDES);         \
         $(IFSKIT_INC_PATH);  \
         $(DDK_INC_PATH);     \
         ..\inc

DEFFILE=CommClient.def

SOURCES = CommClient.cpp


The build result is as following:
D:\incubator\CommClient>build

BUILD: Compile and Link for x86
BUILD: Loading c:\winddk\6000\build.dat...
BUILD: Computing Include file dependencies:
BUILD: Start time: Wed Jan 16 10:14:57 2008

BUILD: Examining d:\incubator\commclient directory for files to compile.
    d:\incubator\commclient - 1 source files (41 lines)

BUILD: Saving c:\winddk\6000\build.dat...
BUILD: Compiling d:\incubator\commclient directory
_NT_TARGET_VERSION SET TO WINXP
Compiling - commclient.cpp

errors in directory d:\incubator\commclient
d:\incubator\commclient\commclient.cpp(24) : error C3861: 'FilterConnectCommunic
ationPort': identifier not found
d:\incubator\commclient\commclient.cpp(36) : error C3861: 'FilterSendMessage': i
dentifier not found
Building Library - objchk_wxp_x86\i386\commclient.lib
link : error LNK1181: cannot open input file 'objchk_wxp_x86\i386\commclient.obj
'
BUILD: Compile errors: not linking d:\incubator\commclient directory
BUILD: Finish time: Wed Jan 16 10:14:58 2008
BUILD: Done

    3 files compiled - 2 Errors
    1 library built - 1 Error

D:\incubator\CommClient>

The declare of FilterSendMessage and FilterConnectCommunic is  in FltUser.h.
error C3861: 'FilterConnectCommunicationPort': identifier not found
error C3861: 'FilterSendMessage': identifier not found
dionysus77
驱动小牛
驱动小牛
  • 注册日期2006-11-15
  • 最后登录2011-12-18
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望392点
  • 贡献值0点
  • 好评度177点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-03-12 18:11
TARGETNAME=MiniDll
TARGETTYPE=DYNLINK
DLLENTRY=_DllMainCRTStartup  
USE_MSVCRT=1
DLLDEF=MiniDll.def
SOURCES=MiniDll.c

C_DEFINES=$(C_DEFINES) -DUNICODE -D_UNICODE

INCLUDES=$(INCLUDES);$(IFSKIT_INC_PATH);$(DDK_INC_PATH);..\..\inc;..\sys

TARGETLIBS=$(SDK_LIB_PATH)\user32.lib \
           $(SDK_LIB_PATH)\kernel32.lib \
           $(IFSKIT_LIB_PATH)\fltLib.lib \
           $(IFSKIT_LIB_PATH)\fltMgr.lib \
           $(IFSKIT_LIB_PATH)\ntoskrnl.lib \
           $(IFSKIT_LIB_PATH)\hal.lib
游客

返回顶部