Friday, August 11, 2006

Windows NDIS Protocol Dirver 自動安裝的作法

1. 準備好 inf 跟 sys 檔案。 2. 呼叫 SetupCopyOEMInf() 3. Windows DDK 內有個 bindview(WINDDK\3790.1830\src\network\config\bindview),裡面有寫如何 install/uninstall network component。 基本上它是利用 INetCfg 這個 COM interface 來安裝 network component。COM 的 C++ 寫法有些繁雜,不過這些程式碼用抄的就可以 work 了。 取 得 INetCfg interface 後,便可以透過 INetCfg 取得 INetCfgClass interface,然後再透過 INetCfgClass 取得 INetCfgClassSetup,然後再呼叫 INetCfgClassSetup 的 Install method 安裝 network component。 HRESULT Install ( IN LPCWSTR pszwComponentId, IN OBO_TOKEN *pOboTokendwSetupFlags, IN DWORD dwUpgradeFromBuildNo, IN LPCWSTR pszwAnswerFile, IN LPCWSTR pszwAnswerSections, OUT INetCfgComponent **ppComponent OPTIONAL ); 比較機車的是 pszwComponentId 要給甚麼。要給它的是 INF 檔案中的某個字串,EX: Provider = %Msft% [MSFT.NTx86] %NDISPROT_Desc%=Install, MS_NDISPROT_XXXX 看到 MS_NDISPROT_XXXX 了嗎?把它丟給 pszwComponentId 即可。 pszwAnswerFilepszwAnswerSections 目前不清楚是甚麼。不過傳 NULL 似乎也可以。

No comments:

codeblock