硬盤安裝方法:
用虛擬光驅等工具將里面的system.gho文件拷貝到硬盤的某一個目錄下,啟動電腦到DOS,啟動ghost等工具,選擇映像文件到分區就可以。
如果你經常需要給別人裝電腦,建議把system.gho文件拷到移動硬盤里,設置成移動硬盤啟動,啟動到DOS,啟動ghost等工具,選擇映像文件到分區就可以.
制作過程:先用使用兩年多沒有出過問題的xpsp2 純凈版安裝(免激活,可升級),其他的軟件都在其他的電腦上一一測試,確定沒有問題才安裝的,補丁全部升級到8月1日,包括qq的殺毒的 等所有的軟件補丁都升級到8月1日,驅動包是網上公認最好的驅動,還有一些最常用的驅動也是在8月1日去mydriver驅動之家下的最新穩定版本.最后用最好的封裝軟件封裝成ISO 文件,大家放心使用,無毒,無后門!
軟件版權歸軟件作者所有,本光盤僅供學習之用!
以下內容含腳本,或可能導致頁面不正常的代碼 |
---|
說明:上面顯示的是代碼內容。您可以先檢查過代碼沒問題,或修改之后再運行. |
以下內容含腳本,或可能導致頁面不正常的代碼 |
---|
說明:上面顯示的是代碼內容。您可以先檢查過代碼沒問題,或修改之后再運行. |
以下內容含腳本,或可能導致頁面不正常的代碼 |
---|
說明:上面顯示的是代碼內容。您可以先檢查過代碼沒問題,或修改之后再運行. |
以下內容含腳本,或可能導致頁面不正常的代碼 |
---|
說明:上面顯示的是代碼內容。您可以先檢查過代碼沒問題,或修改之后再運行. |
“Thinkpad旅行鍵盤”或” ThinkPad帶有UltraNAV的USB鍵盤”在WINDOWS 更新”驅動以后無法使用
When the “ThinkPad travel keyboard” or “ThinkPad USB Keyboard with UltraNAV” is plugged-in, run Windows Update and select the optional driver update named “Synaptics driver update for synaptics composite usb hid device”. Download and install this update. After the update is complete, both the trackpoint and touchpad of the keyboard will not function.
當插入“Thinkpad旅行鍵盤”或” ThinkPad帶有UltraNAV的USB鍵盤”時,運行WINDOWS更新并且選擇了一個名為” Synaptics driver update for synaptics composite usb hid device”的可選驅動.下載安裝此更新.在更新完成以后鍵盤的方向鍵和觸摸板都無法使用.
PROBLEM ISOLATION AIDS:適用范圍
- The above symptom may occur on the following systems but not limited to:
以上問題會出現在但不局限于如下機型當中:
ThinkCentre: Type 8105, 8107, 8109, 8117, 8119, 8121, 8153, 8154, 8155, 8156, 8157, 8158, 8159, 8160, 8161, 8162,8163, 8164, 8165, 8166, 8167, 8168, 8169, 8170, 8287, 8288, 8289, 8296, 8297, 8298, 8326, 8327,8328, 8329, 8340, 8341, 8342, 8343, 8344, 8380, 8381, 8382, 8701, 8702, 8970, 8973, 8980, 8983,8992, 8995, 9276, 9277, 9286, 9287, 9378, 9387, 9628, 9635, 8705, 8706, 8972, 8975, 8982, 8985,8994, 9265, 9636, 9638, 9640, 9641, 8013, 8700, 8976, 8979, 8986, 8991, 9266, 9269, 9282, 9283,9374, 9383, 9384, 9631, 9646, 9647, 9694, 9695, 9120, 9127, 9129, 9134, 9136, 9139, 9141, 9143,9156, 9158, 9171, 9126, 9128, 9130, 9135, 9137, 9140, 9142, 9144, 9157, 9169, 6417, 6418, 6449,6453, 8104, 8106, 8108, 8118, 8120, 8099, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8211, 8212,8213, 8214, 8215, 9210, 9211, 8299, 8380, 8009, 8010, 8011, 8012, 8791, 8792, 8793, 8794, 8795,8796, 8797, 8798, 8799, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8807, 8808, 8810, 8811, 8812,8813, 8814, 8816, 9278, 9279, 9288, 9379, 9380, 9389, 9632, 9637, 9642, 9643, 9644, 9645, 8792,8794, 8796, 8798, 8800, 8802, 8804, 8806, 8808, 8811, 6062, 6065, 6071, 6076, 6089, 9182, 6019,6066, 6072, 6077, 6087, 9181, 6008, 6068, 6074, 6079, 6082, 9172, 6010, 6069, 6075, 6081, 6086,9174, 9011, 9014, 9071, 9089, 9162, 9303, 6064, 6067, 6073, 6078, 6088, 9196, 9012, 9018, 9087,9096, 9163, 9193, 9013, 9019, 9088, 9160, 9164, 9194
Lenovo 3000: Type 8252, 8253, 8254, 8255, 8256, 8453, 8454, 8455, 8456, 8457, 8257, 8258, 8259, 8458, 8459, 8460,7393, 7394, 7395, 7396, 7397, 7398, 7387, 7388, 7389, 7390, 7391, 7392, 9690, 9691, 9688, 9689,9686, 9687
APPLIES TO:適用于如下操作系統
Microsoft Windows Vista Service Pack 1
FIX:解決方案
The Windows Update “Synaptics driver update for synaptics composite usb hid device” is not suitable for the “ThinkPad travel keyboard” or “ThinkPad USB Keyboard with UltraNAV”.
Windows的“Synaptics driver update for synaptics composite usb hid device”更新并不適用“Thinkpad旅行鍵盤”或” ThinkPad帶有UltraNAV的USB鍵盤”.
關鍵詞:VXD 實時 串口通信
引言
在微軟的視窗操作系統中,系統內核掌管所有的應用程序,通過獨特的任務調度算法實現CPU的分時多任務處理方式。多任務處理對大多數用戶可能是件好事,但是對那些想把實時通信建立在Windows操作系統上的特殊用戶來說,操作界面的圖形化并不比MS-DOS的單任務更具吸引力。在視窗操作系統里可以進行實時通信和控制碼?答案是:VXD技術可以幫我們在獲取友好的人機界面的同時還擁有很強的實時性。
1 VXD技術解析
VXD技術可追溯到Windows3.1,它的引入就是要讓操作系統實現多工以及硬件資源的共享。為了支持多個MS-DOS任務同時執行,Windows98讓每個MS-DOS應用程序在各自的虛擬機(VM)上運行,各自互不相干;而所有的Widnows應用程序卻都在一個虛擬機上運行。圖1所示的結構框圖很好地說明了Windows98的整體架構。
圖1中,由眾多的VXD組成系統級代碼處于最底層。其中,處于中心地位的是一名為VMM32的VXD,它負責協調和管理所有的VXDs。其它VXDs則通過消息機制(這個消息機制由VMM32.VXD來維護)彼此聯系。由所有VXDs開放出的服務接口(API)組成了一個服務網,它們彼此通過合作的方式,提供Windows98的系統底層驅動服務。
從以上Windows98系統架構可以看出,要想在視窗平臺下獲取很強的實時性,僅靠提升應用程序線程優先級的方法是不夠的。因為Win32應用程序代碼屬于Ring3級,而VXD代碼則屬于Ring0級;采用VXD撰寫的實時通信程序可以完全不受代碼限制,可以直接對硬件進行操作。VXD的這個特點正是實時通信建立所必須的。
設計實時通信的VXD前,先解釋以下幾個問題:
①VMM32使用VPICD.VXD虛擬化每個硬件和軟件中斷。VMM32為每個虛擬機(VM)維護一個IDT結構,當中斷發生時,CPU先保護中斷現場,然后經由當前VM的IDT把這個中斷引導至相應的中斷處理程式。
中斷的虛擬化,使我們有機會給每個中斷提供新的中斷處理函數,并可以讓多個硬件共享同一個中斷號。VPICD.VXD為我們提供這些服務。
②VMM有兩個調度器,用以在多個線程和VMs之間實現搶占式多工。主調度器負責選定下一個將被執行的線程。這個選擇可以是一個,也可以是多個。然后,主調度器把選擇結果送給所謂的時間片調度器,并由后者完成各個應用程序間的時間片分配。調度器也時應用程序經由呼叫Win32線程優先調整API(如SetThreadPriority和SetPriorityClass等)做出回應。當中斷發生時,VMM32自動提升中斷處理函數所在VM之優先級,保證中斷處理函數能及時被執行。
③VXD和Win32應用程序可直接通信。Win32應用程序可通過一個系統API(DevicelOControl(…))來呼叫位于底層的VXD為其服務。在呼叫VXD前,首先必須調用CreatFile(…)這個API加載該VXD(如果該VXD是一個靜態VXD,則不用加載)。所有的呼叫動作其實都通過VMM32完成。VXD也可以通過消息方式和位于上層的Win32應用程序通信。She11.VXD為所有希望以消息機制和Win32應用程序通信的VXD提供了這一服務。
以上是編寫一個串口通信驅動需要的系統層面知識。對于Windows底層的了解。
2 用VXD實現一個實時串口通信驅動
接下來用VXD技術實現一個實時串行通信的驅動。這個VXD是一個動態(Dynamic)VXD,當它的服務被呼叫時,VMM32會動態加載這個VXD。作者采用的工具是C+98DDK。當然也可以使用其它的工具,如MASM6.11(或更高版本)、VtoolsD。用C搭配DDK完成VXD構建的好處是,可以使用C語言完成絕大部分的程序,程序比較容易閱讀和維護。
用C來實現一個VXD驅動,需要準備如下條件:一個.ASM的匯編語言接口文件(在其中定義VXD要處理的系統消息和輸出API),一個.C的函數實現文件(在其中完成自己函數實體),一個.DEF的定義文件(在其中定義VXD中各個段的別名并匯成一個DDB)和一個.MAK檔(用來編譯并連接生成VXD,可有可無)。在這里,僅給出用C實現的函數檔。至于其它的文件,可以從本文所列的參考書目或其它文獻中找到相關文檔的說明。
這個串口通信驅動程序的功能是:實時送出一個Byte的數據,實時接收一個Byte的數據。作為演示之用,并沒有加入其它代碼。該VXD驅動主要由如下3個系統消息(由VMM32來維護和管理)處理函數組成,其代碼如下:
(1)OnSysDynamicDeviceInit()函數
BOOL OnSysDynamicDeviceInit()
{ //OnSysDynamicDeviceInit
irqhandle=VPICD_Virtualize_IRQ((DWORD)(&irq4));
if(irqhandle= =0){
return FALSE;
}
return TRUE; //OnSysDynamicDeviceInit
}
該函數用來完成VXD初始化所做的工作。在本例中,由于實時監視串口中斷的需要,要給COM1的中斷安裝一個自定義的斷服務函數。98DDK已經提供了這個函數的C語言版,其原型是HIRQ static VPICD_Virtualize_IRQ(PVID pvid),在vpicd.h中。該函數需要一個指針作為參數(指向名為VPICD_IRQ_Descriptor的結構體),函數傳回一個指向該虛擬IRQ的句柄(該句柄在后來的VPICD服務中需要提供)。VPICD_IRQ_Descriptor結構體的組成為:
typedef struct VPICD_IRQ_Descriptor{
USHORT VID_IRQ_Number; //IRQ號(0~15)
USHORT VID_Options; //標志位選項
ULONG VID_Hw_Int_Proc; //硬件中斷服務程序的地址
ULONG VID_Virt_Int_Proc; //虛擬中斷服務程序
ULONG VID_Mask_Change_Proc //Mask Change調用例程
ULONG VID_IRET_Proc; //IRET調用例程
ULONG VID_IRET_Time_Out; //在Vm的進程優先級提升之前的最大等待時間
ULONG VID_Hw_Int_Ref; //硬件中斷服務程序的數據存放地址
}VID;
其中只用到三位。在本例中需要聲明一個名為irq4的全局變量為VID結構,并付給如下初值:VID irq4={4,0,hwproc,0,0,0,0,500,0},表示將要虛擬化IRQ4,改變其中斷處理函數為void hwproc(void),該函數的原型如下:
void hwproc(void){
_asm{
mov dx,0x3f8
in al,dx
mov byte ptr [readin],al
clc
}
return;
}
在這個中斷處理中,僅僅從COM1的數據寄存器(地址為3F8h)中讀取接收到的數值,并把該數值存放在一個類型為BYTE、名為readin的內存中。
(2)OnSysDynamicDeviceExit()函數
BOOL OnSysDynamicDeviceExit()
{
VPICD_Force_Default_Behavior(irqhandle);
//解除IRQ4虛擬化
return TRUE;
} //OnSysDynamicDeviceExit
該數提供了用于善后處理VXD在卸載時需要完成的事件。在本例中,和VXD初始化對應,需要解除對COM1的中斷IRQ4的虛擬化。作者也是用98DDK在vpicd.h中提供的外包函數void static_inline VPICD_Force_Default_Behavior(HIRQ hirp)。該函數唯一需要的參數便是使用VPICD_Virtualize_IRQ函數傳回的IRQ句柄。
(3)OnDeviceIoControl()函數
DWORD OnDeviceIoControl(PDIOCPARAMETERS p){
Switch (p->dwIoControlCode)
{
case 1: //端口寫功能
if(!p->lpvOutBuffer||p->cbOutBuffer<1)
{ //輸出緩存的有效性檢查
return ERROR_INVALID_PARAMETER;
}
if(serial_out((DWORD)(p->lpvInBuffer)))
{ //數據發送
*(BYTE*)(p->lpvOutBuffer)=*(BYTE*)(p->lpvInBuffer);
}
else{
*(BYTE*)(p->lpvOutBuffer)=0;
}
open_int(); //打開com1中斷
return 0;
case 2: //端口讀功能
if(*(BYTE*)reading= =0x00)
{ //數據讀入
*(BYTE*)(p->lpvOutBuffer)=0x00;
return 0;
}
*(BTYE*)(p->lpvOutBuffer)=*(BYTE*)(readin);
return 0;
}
return 0;
}
return 0;
}
OnDeviceIoControl函數用來處理Win32應用程序對VXD的呼叫。Win32應用程序的呼叫會讓VMM32送給該VXD一個系統信息,并傳遞進一個DIOCPARAMETERS結構的指針。該結構里包含Win32應用程序呼叫時傳遞進來的各個參數。這個結構的組成如下:
Typedef stunct DIOCParams{
DWORD Internall; //指向客戶寄存器的指針
DWORD VMHande; //該VM的句柄
DWORD Internal2; //指向DDB結構的指針
DWORD dwIoConrolCode; //DeviceIoControl例程中呼叫的控制碼
DWOD lpvInBuffer; //DeviceIoControl例程呼叫所傳遞進來的輸入緩沖區地址
DWORD cbInBuffer; //輸入緩沖區的大小
DWORD lpvOutBuffer; //DeviceIoControl例程呼叫所傳遞進來的輸出緩沖區地址
DWORD cbOutBuffer; //輸出緩沖區的大小
DWORD lpcbBytesReturned; //拷貝到輸出緩沖區中的字節數(可以為NULL)
DWORD lpOverlapped; //DeviceIoControl例程呼叫所傳遞進來的重疊I/O塊結構
DWORD hDevice; //Ring3層呼叫應用程序句柄
DWORD tagProcess; //例程標簽
}
DIOPARAMETERS;
其中,dwIoControlCode指明了Win32應用程序需要VXD提供的哪一項服務。在本例中采用一個switch-case語句作為服務入口,如下所示。其中服務1為讓串口送出一個字節,服務2為讀取一個已經由串口接收的字節。函數open_int()是用來初始化串口以便接收字節數據;函數BOOL serial_out(DWORD pBuffer)是讓串口發出一個字節。它們的函數體分別如下:
BOOL serial_out(DWORD pBuffer){
if(pBuffer= =NULL){
return FALSE;
}
]]>Win2000的主板,聲卡,網卡,usb,mode驅動
Win XP的主板驅動
WinXP的聲卡,顯卡,網卡,mode驅動
Win XP的USB驅動
Win 98的網卡驅動
Win98的usb驅動
好了系統的驅動就介紹到這里了.下面介紹驅動安裝。
驅動技巧:一般的主板都集成聲卡,網卡,也有的集成顯卡,所以一般這些驅動都在主板驅動盤里,一般的驅動盤放入光驅后都會自動撥放,如果不自動播放,一般都在我的電腦,光驅盤符,打開就在里面,一般標寫著inf文件夾為主板驅動,audio或者sound的文件夾為聲卡驅動,vag的文件夾為顯卡驅動,usb的文件夾為usb驅動,lan文件夾為網卡驅動,sata的文件夾為sata硬盤驅動(針對sata硬盤而言),amd的文件夾為AMD Athlon 控制器驅動(這個一般無須安裝),還有一般安裝主板,顯卡驅動后必須重起電腦,其他的聲卡,網卡,usb驅動則無須重起電腦.好了技巧就介紹到這里,下面舉例子介紹
以升技k8pro主板為例
因為這款主板集成聲卡, 網卡,所以這些驅動都在主板驅動盤,我們放入主板驅動盤到光驅,系統將自動播放,請看下面的圖片介紹
這里比如我們要安裝USB驅動,我們鼠標點VIA USB2.0 DRIVER點他出現下面的圖片
這里點next,一直點next只到安裝完畢后,我們點完成,到此時驅動也安裝好了,這里不做詳細介紹,而其他的聲卡,和顯卡,網卡,安裝方法和上面的usb驅動安裝方法都是一樣的。
下面介紹如果光盤不自動播放,我們打開我的電腦,右鍵光驅盤符打開。請看圖片
然后我們會發現一個叫Drivers的文件夾了,對了這里就是放各個驅動,比如聲卡,網卡,主板等驅動的文件.請看圖片
然后在看里面的文件夾
這里就舉一個聲卡驅動,打開audio在打開realtek請看下面圖片
]]>