テクニカル ドキュメント #54



Doc ID: 54
製品: WinDriver
Version:  5.22 およびそれ以前

Windows マシンにドライバをインストールするための InstallShield のサンプル

メモ: 以下のサンプルでは、"WinNT" の記述は、Windows NT 4.0、Windows 2000 および Windows XP を現し、"Win98" の記述は、Windows 98、Windows 98 Second Edition および Windows ME を現し、そして "Win95" の記述は、Windows 95 を現しています。

WinDriver のカーネル ファイルをコピーする:

  number nvResult, nMajor, nMinor;
  STRING svResult;
  BOOL  bWinNT;
  BOOL  bWin98;
  BOOL  bWin95;
  
  bWinNT = FALSE;
  bWin98 = FALSE;
  bWin95 = FALSE;

  GetSystemInfo(OS, nvResult, svResult);
  if (nvResult  = IS_WINDOWSNT) then
      bWinNT = TRUE;
  else
      if (nvResult = IS_WINDOWS95) then
          GetSystemInfo(OSMAJOR, nMajor, svResult);
          GetSystemInfo(OSMINOR, nMinor, svResult);
          if (((nMajor > 4) || ((nMajor = 4) && (nMinor > 0)))) then
             BWin98 = TRUE;
          else
             bWin95 = TRUE;
          endif;
      endif;
  endif;

  if ((bWinNT = TRUE) || (bWin98 = TRUE)) then
      if (bWinNT = TRUE) then
          TARGETDIR = WINSYSDIR^"drivers";
      else
          TARGETDIR = WINSYSDIR^"..\\system32\\drivers";
      endif;
    
      CompressGet(COMPRESSED_FILE, "windrvr.sys",COMP_NORMAL);
  
  endif;
 
  if (bWin95) then   
       TARGETDIR = WINSYSDIR^"vmm32";
       CompressGet(COMPRESSED_FILE, "windrvr.vxd",COMP_NORMAL);
  endif;
WinDriver のカーネルをロードし、レジストリに追加する:

WinDriver v5.2 およびそれ以降の場合:
  LaunchAppAndWait("wdreg_gui",
    "-inf <full path to wd_virtual.inf> reload", WAIT);
  LaunchAppAndWait("wdreg_gui",
    "-inf <full path to your INF file> loadinf", WAIT);


例:
  LaunchAppAndWait("wdreg_gui",
    "-inf c:\tmp\wd_virtual.inf reload", WAIT);
  LaunchAppAndWait("wdreg_gui",
    "-inf %windir%\inf\my_device.inf loadinf", WAIT);


WinDriver v5.05b およびそれ以前の場合:
  LaunchAppAndWait("wdreg", "install", WAIT);

WinDriver\util ディレクトリ以下に wdreg_gui.exe/wdreg.exe があります。
v5.05b およびそれ以前の場合、WinDriver\samples\wdreg ディレクトリ以下に wdreg.exe ユーティリティのソース コードがあります。

メモ : 'wdreg install'/'wdreg_gui install' で WinDriver をレジストリに追加します、このため、次の起動時に WinDriver はロードされ、すぐに WinDriver をロードします。そのため、再起動せずにアプリケーションを起動できます (Win98/Me の *.sys 以外)。