jjw57
驱动牛犊
驱动牛犊
  • 注册日期2002-10-04
  • 最后登录2005-03-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1433回复:2

请问如何用应用程序加载Vxd

楼主#
更多 发布于:2002-10-17 19:54
thank
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
沙发#
发布于:2002-10-18 08:16
可以看看如下示例代码,vxdldr.h由VToolsD提供

#define Not_VxD
#include <vxdldr.h>

BOOL WINAPI Vxd_load(LPCSTR szFileName)
{
    DWORD nRet;
    BOOL isDone;
    HANDLE hLoader;
    char szShortName[MAX_PATH];

    if( !GetShortPathName( szFileName, szShortName, sizeof(szShortName) ) )
    {
        return FALSE;
    }

    hLoader = CreateFile(
        \"\\\\\\\\.\\\\VXDLDR\",
        GENERIC_READ,
        FILE_SHARE_READ,
        0,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL,
        NULL);
    
    if (hLoader == INVALID_HANDLE_VALUE)
    {
        return FALSE;
    }

    isDone = DeviceIoControl(
        hLoader,
        VXDLDR_APIFUNC_LOADDEVICE,
        (PVOID)szShortName,
        strlen(szShortName)+1,
        NULL,
        0,
        &nRet,
        NULL);

    CloseHandle(hLoader);

    return isDone;
}

BOOL WINAPI Vxd_unload(LPCSTR szVxdNameOnly)
{
    struct
    {
        DWORD dwSignature;
        char  szVxdName[MAX_PATH];
    }ToUnload = { -1 };

    HANDLE hLoader = CreateFile(
 \"\\\\\\\\.\\\\VXDLDR\",
 GENERIC_READ,
 FILE_SHARE_READ,
 0,
 OPEN_EXISTING,
 FILE_ATTRIBUTE_NORMAL,
 NULL);

    strcpy( ToUnload.szVxdName, szVxdNameOnly );

    if(hLoader != INVALID_HANDLE_VALUE)
    {
        DWORD nRet;
        BOOL isDone = DeviceIoControl(
              hLoader,
              VXDLDR_APIFUNC_UNLOADDEVICE,
              (PVOID)&ToUnload,
              strlen(ToUnload.szVxdName)+1+sizeof(DWORD),   //  size of ToUnload
              NULL,
              0,
              &nRet,
              NULL);

        CloseHandle(hLoader);
        return isDone;
    }

    return FALSE;
}
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
wanmintian
驱动牛犊
驱动牛犊
  • 注册日期2002-04-09
  • 最后登录2006-03-27
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-10-20 11:24
楼上的是动态VXD,对于静态VXD,可在注册表或者是system.ini相关节中添加
游客

返回顶部