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 即可。
pszwAnswerFile 跟
pszwAnswerSections 目前不清楚是甚麼。不過傳 NULL 似乎也可以。
No comments:
Post a Comment