PS/2 (i8042prt) 驅動程式

本主題描述 I8042prt、適用於 PS/2 樣式鍵盤和滑鼠裝置的 Microsoft Windows 2000 和更新版本的系統函式驅動程式功能。

I8042prt 會實作 I8042prt 服務及其可執行映像 i8042prt.sys。

I8042prt 的功能包括:

  • 硬體相依、同時操作 PS/2 樣式的鍵盤和滑鼠裝置。

    鍵盤和滑鼠共用 I/O 埠,但使用不同的中斷、中斷服務例程 (ISR) ,以及 ISR 分派完成例程。

  • 隨插即用、電源管理和 WMI

  • 舊版裝置的作業。

  • 鍵盤類別服務回呼例程滑鼠類別服務回呼例程的連接。

    I8042prt 使用類別服務回呼,將數據從I8042prt的輸入數據緩衝區傳送至類別驅動程序的數據緩衝區。

  • 為鍵盤裝置新增廠商提供的 PI8042_KEYBOARD_INITIALIZATION_ROUTINE 回呼例程。

    選擇性的上層裝置篩選驅動程式會提供回呼例程。

  • 新增廠商提供的 PI8042_KEYBOARD_ISR 回呼例程和自定義 PI8042_MOUSE_ISR 回呼例程。

    選擇性的上層裝置篩選驅動程式會提供這些回呼例程。

  • 鍵盤寫入緩衝區要求滑鼠寫入緩衝區要求

    高階裝置篩選驅動程式可以使用寫入緩衝區要求,將其寫入同步處理到裝置的ISR,以及裝置上的其他讀取和寫入。

  • 鍵盤啟動資訊要求滑鼠啟動資訊要求

    開始資訊要求會將指標傳遞給裝置的中斷物件至高階篩選驅動程式。 篩選驅動程式可以使用中斷物件,將其作業與裝置的ISR同步處理。

  • I8042prt 回呼例程

    高階裝置篩選驅動程式可以使用裝置 ISR 內容中的回呼例程來寫入裝置,以及將來自裝置的數據封包排入佇列。

與 PS/2 驅動程式相關聯的登錄設定

以下是與 PS/2 埠驅動程式相關聯的登錄機碼清單。

[Key: HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]
  • EnableWheelDetection [REG_DWORD] – 判斷驅動程式是否嘗試偵測並啟用滑鼠裝置上的滾輪。 有些裝置配備滑鼠滾輪,可在應用程式支援時提供快速捲動和其他控制功能。
  • ResendIterations [REG_DWORD] – 指定嘗試硬件作業的次數上限。 如果試用版數目超過此專案的值,Windows 會將作業視為失敗。
  • NumberOfButtons [REG_DWORD] – 指定啟動時滑鼠埠滑鼠上的按鈕數目。 如果啟動時偵測到的按鈕數目不正確,您可以變更這個專案的值來覆寫它。
  • KeyboardDataQueueSize [REG_DWORD] – 指定鍵盤驅動程序緩衝的鍵盤事件數目。 此專案也用於計算非分頁記憶體集區中鍵盤驅動程式內部緩衝區的大小。 若要判斷要配置給緩衝區的位元元組數目,系統會將KEYBOARD_INPUT_DATA結構的大小乘以 KeyboardDataQueueSize 的值。
  • PollStatusIterations [REG_DWORD] – 指定系統驗證 i8042 控制器狀態緩存器中斷的次數上限。 如果中斷在這個專案的值所指定的試用版數目中無法驗證,則會忽略中斷。
  • PollingIterations [REG_DWORD] - 指定 Windows 2000 輪詢硬體的次數上限。 如果超過此專案中指定的試用版數目,Windows 2000 會停止輪詢。
  • SampleRate [REG_DWORD] – 指定 PS/2 驅動程式測量 PS/2 滑鼠的特性和活動頻率。 驅動程式會使用透過取樣收集的資訊,將滑鼠裝置的作業優化。
  • PollingIterationsMaximum [REG_DWORD] – 指定 Windows 2000 在舊樣式 AT 鍵盤上輪詢硬體的最大次數。 如果超過此專案中指定的試用版數目,Windows 會停止輪詢。
  • MouseResendStallTime [REG_DWORD] – 如果傳回 RESEND 訊息而沒有 ACK,則滑鼠驅動程式會等候通知的時間長度 (ACK) 。 當滑鼠驅動程式中斷服務例程包含重設時,就會使用這個專案。
  • OverrideKeyboardType [REG_DWORD] – 指定鍵盤類型。 您可以將這個專案新增至登錄,以更正啟動時偵測到的鍵盤類型錯誤。
  • OverrideKeyboardSubtype [REG_DWORD] – 指定 OEM 相依的鍵盤子類型。 您可以將這個專案新增至登錄,以更正啟動時偵測到的鍵盤子類型錯誤。

如需相關資訊,請參閱: