【手続補正書】
【提出日】平成21年5月11日(2009.5.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータで実行する、デバイスと独立に割り込みを処理する方法であって、
ユーザ・モードで実行されるデバイス・ドライバをオペレーティング・システムに登録するステップと、
デバイスと独立な割り込みサービスをカーネル・サービスとして提供するステップと、
前記ドライバによってコールされるインターフェースを露出（expose）し、割り込みをイネーブルするステップと、
前記割り込みをデバイスと独立な方法でマスクするステップと、
前記インターフェイスを介して、前記割り込みサービスにより割り込みラインに生じた、前記デバイス・ドライバからのコールを受け取るステップと、
前記割り込みをマスク解除するステップと、
前記割り込みを受け取るステップと、
前記割り込みラインを共有するカーネル・モード・ドライバのために割り込みサービス・ルーチンを呼び出した後で、前記割り込みを受け取って、ジェネリックなカーネル・モード・割り込みサービス・ルーチンを呼び出すステップと、
プロセッサよりも低いレベルで前記割り込みを再度マスクする、ジェネリックな割り込みサービス・ルーチンを実行し、前記割り込みを処理するために、ユーザ・モードで前記デバイス・ドライバのコールをスケジュリングするステップと、
前記割り込みを前記デバイス・ドライバによって処理するステップと、
前記割り込みラインが、他の割り込みを受け取れるようにするステップと、
を含むことを特徴とする方法。
【請求項２】
コンピュータで実行する、請求項１記載の方法において、
前記割り込みをディセーブルするステップは、ＡＰＩＣ又はバス・コントローラの一方において生じることを特徴とする方法。
【請求項３】
コンピュータで実行する、請求項１記載の方法において、
前記割り込みを共有するスケジュリング機構を提供するステップと、
前記割り込みを共有するすべてのドライバをコールするステップと、
すべてのドライバが前記割り込みの処理から復帰するまで前記割り込みの前記ディセーブルを維持するステップと、
を更に含むことを特徴とする方法。
【請求項４】
コンピュータで実行する、請求項３記載の方法において、
前記割り込みを共有する多数のドライバにカウンタを設定するステップを更に含むことを特徴とする方法。
【請求項５】
コンピュータで実行する、請求項４記載の方法において、
前記割り込みをイネーブルする前に前記カウンタをゼロにデクリメントするステップを更に含むことを特徴とする方法。
【請求項６】
コンピュータで実行する、請求項３記載の方法において、
第２のドライバがカーネル・モード・レベルにおいて提供され、
前記方法が、ユーザ・モード・ドライバとカーネル・モード・ドライバとの両方に対して実行されることを特徴とする方法。
【請求項７】
コンピュータで実行する、請求項１記載の方法において、
前記カーネル・サービスは前記ドライバによって処理されるデバイスとは独立であるジェネリックなサービスであり、
前記ドライバはユーザ・モード・ドライバであることを特徴とする方法。
【請求項８】
コンピュータで実行する、ユーザ・モードのデバイス・ドライバの処理方法であって、
ユーザ・モードのデバイス・ドライバをオペレーティング・システムに登録するステップと、
前記ユーザ・モードのデバイス・ドライバによってコールされるインターフェースを露出し、割り込みをイネーブルする、前記デバイスと独立な割り込みサービスをカーネル・サービスとして提供するステップと、
前記ジェネリックな割り込みサービス・ルーチンを実行する前に、前記割り込みをプロセッサにおいてマスクするステップと、
前記インターフェイスを介して、前記割り込みサービスにより割り込みラインに生じた、前記ユーザ・モードのデバイス・ドライバのうちのひとつからのコールを受け取るステップと、
前記割り込みをマスク解除するステップと、
前記割り込みを受け取るステップと、
前記割り込みラインを共有するカーネル・モード・ドライバのために割り込みサービス・ルーチンを呼び出した後で、前記割り込みを受け取って、ジェネリックなカーネル・モード・割り込みサービス・ルーチンを呼び出すステップと、
前記ジェネリックなカーネル・モード割り込みサービスを実行するステップと、
前記割り込みを前記プロセッサよりも低いレベルでディセーブルして、前記割り込みが前記プロセッサに到達することを防止するステップと、
前記割り込みを処理するために、ユーザ・モードで前記ユーザ・モードのデバイス・ドライバのうちのひとつをコールすることをスケジュリングするステップと、
前記割り込みを前記ユーザ・モードのデバイス・ドライバのうちのひとつによって処理するステップと、
前記割り込みラインが、他の割り込みを受け取れるようにするステップと、
を含むことを特徴とする方法。
【請求項９】
請求項８記載の方法において、
前記割り込みをディセーブルするステップは、ＡＰＩＣ又はバス・コントローラの一方において生じることを特徴とする方法。
【請求項１０】
請求項８記載の方法において、
割り込みを共有するスケジュリング機構を提供するステップと、
前記共有された割り込みと関連するすべてのユーザ・モードのデバイス・ドライバをコールするステップと、
すべてのユーザ・モードのデバイス・ドライバが前記割り込みの処理から復帰するまで前記割り込みの前記ディセーブルを維持するステップと、
を更に含むことを特徴とする方法。
【請求項１１】
請求項１０記載の方法において、
未登録又は未知のデバイスのために前記スケジュリング機構を実行するステップと、
前記未登録又は未知のデバイスをディセーブルするステップと、
を更に含むことを特徴とする方法。
【請求項１２】
請求項８記載の方法において、
カーネル・モードのデバイス・ドライバが提供され、
前記方法が、前記ユーザ・モードのデバイス・ドライバと前記カーネル・モードのデバイス・ドライバとの両方で実行されることを特徴とする方法。
【請求項１３】
ユーザ・モードのデバイス・ドライバを処理するための命令が記憶されているコンピュータ可読な媒体であって、前記命令は、
前記ユーザ・モードのデバイス・ドライバをオペレーティング・システムに登録するステップと、
割り込みサービスをカーネル・サービスとして提供するステップであって、前記割り込みサービスは前記ユーザ・モードのデバイス・ドライバによってコールされるインターフェースを露出して、割り込みをイネーブルする、ステップと、
割り込みラインへのアクセスを提供する割り込みオブジェクトを、前記デバイス・ドライバのひとつに割り付け、かつ、前記割り込みオブジェクトを前記ユーザ・モードのデバイス・ドライブのひとつに受け渡すステップと、
プロセッサにおいて前記割り込みをマスクするステップと、
前記インターフェイスを介して、前記割り込みサービスにより割り込みラインに生じた、前記ユーザ・モードのデバイス・ドライバのうちのひとつからのコールを受け取るステップと、
前記割り込みをマスク解除するステップと、
前記割り込みを受け取るステップと、
前記割り込みラインを共有するカーネル・モード・ドライバのために割り込みサービス・ルーチンを呼び出した後で、前記割り込みを受け取って、ジェネリックなカーネル・モード・割り込みサービス・ルーチンを呼び出すステップと、
前記ジェネリックなカーネル・モード割り込みサービスを実行するステップと、
前記割り込みを前記プロセッサよりも低いレベルでディセーブルして、前記割り込みが前記プロセッサに到達することを防止するステップと、
前記割り込みを処理するために、ユーザ・モードで前記ユーザ・モードのデバイス・ドライバのうちのひとつをコールすることをスケジュリングするステップと、
前記割り込みを前記ユーザ・モードのデバイス・ドライバのうちのひとつによって処理するステップと、
前記割り込みラインが、他の割り込みを受け取れるようにするステップと、
を含む方法を実行することを特徴とするコンピュータ可読な媒体。
【請求項１４】
請求項１３記載のコンピュータ可読な媒体において、
前記割り込みのディセーブルは、ＡＰＩＣ又はバス・コントローラの一方において生じることを特徴とするコンピュータ可読な媒体。
【請求項１５】
請求項１３記載のコンピュータ可読な媒体において、
共有された割り込みのためのスケジュリング機構を提供するステップと、
前記共有された割り込みと関連するすべてのユーザ・モードのデバイス・ドライバをコールするステップと、
すべてのユーザ・モードのデバイス・ドライバが前記割り込みの処理から復帰するまで前記割り込みの前記ディセーブルを維持するステップと、
を実行するための命令を更に含むことを特徴とするコンピュータ可読な媒体。
【請求項１６】
請求項１５記載のコンピュータ可読な媒体において、
未登録又は未知のデバイスのために前記スケジュリング機構を実行するステップと、
前記未登録又は未知のデバイスをディセーブルするステップと、
を実行するための命令を更に含むことを特徴とするコンピュータ可読な媒体。
【請求項１７】
請求項１５記載のコンピュータ可読な媒体において、
カーネル・モードのデバイス・ドライバが提供され、
前記命令は、前記ユーザ・モードのデバイス・ドライバとカーネル・モードのデバイス・ドライバとの両方で実行されることを特徴とするコンピュータ可読な媒体。