【手続補正書】
【提出日】平成18年12月4日(2006.12.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
一連の命令が格納されている機械可読媒体であって、該一連の命令は、プロセッサによって実行されたときにおいて、
該プロセッサによって実行されているネットワークドライバソフトウェアインタフェース内の少なくとも第１のセクションのコンピュータコードへのアクセスを、該第１のセクションのコンピュータコードの前に実行されるコンピュータコードをブロッキングコンピュータコードで上書きすることによって、ディセーブルする動作であって、該ネットワークドライバソフトウェアインタフェースは、一組の結合に従って、コンピュータシステム内の一つ以上のプロトコルドライバおよび一つ以上のメディアアクセス制御ユニット間の通信を提供する、動作と、
該プロセッサを用いて該ブロッキングコンピュータコードを実行する動作と、
該ネットワークドライバソフトウェアインタフェースの該ブロッキングコンピュータコードが該プロセッサによって実行されている間において、かつ該ネットワークドライバソフトウェアインタフェースの完全な動作を停止することなしに、該第１のセクションのコンピュータコードをパッチする動作であって、該第１のセクションのコードのパッチが、該ネットワークドライバソフトウェアインタフェースからの呼び出し命令を転送するためのテンプレートジャンプをリルーティングドライバ内のテンプレートに挿入することを包含し、該テンプレートは、通信を制御するための新たなコンピュータコードを含み、該テンプレートジャンプおよびテンプレートは、該コンピュータシステム内の一つ以上のプロトコルドライバおよび一つ以上のメディアアクセス制御ユニット間の通信を該リルーティングドライバが制御することを可能にする、動作と、
該ブロッキングコンピュータコードを該パッチされた第１のセクションのコンピュータコードで置換することによって、該パッチされた第１のセクションのコンピュータコードへのアクセスを再イネーブルする動作と
を該プロセッサに実行させる、機械可読媒体。
【請求項２】
前記パッチが静的パッチである、請求項１に記載の機械可読媒体。
【請求項３】
前記プロトコルドライバへのＣＡＬＬ命令が前記リルーティングドライバ内の前記テンプレートへのＪＵＭＰで置換されるように、前記テンプレートジャンプが前記ネットワークドライバソフトウェアインタフェースに挿入され、該テンプレートが、該ＣＡＬＬ命令を含む、請求項２に記載の機械可読媒体。
【請求項４】
前記第１のセクションのコンピュータコードの前記パッチが、前記ネットワークドライバソフトウェアインタフェースと前記リルーティングドライバとの間において少なくとも１つの新たな結合を作成する、請求項２に記載の機械可読媒体。
【請求項５】
前記少なくとも１つの新たな結合が、前記リルーティングドライバ内の取得ユニットと一つ以上のメディアアクセス制御ユニットとの間における通信を提供する、請求項４に記載の機械可読媒体。
【請求項６】
前記取得ユニットが、前記少なくとも１つの新たな結合を介した通信を傍受するために用いられる、請求項５に記載の機械可読媒体。
【請求項７】
前記パッチが動的パッチである、請求項１に記載の機械可読媒体。
【請求項８】
前記動的パッチが、前記リルーティングドライバ内のダイナミックパッチコンピュータコードと少なくとも１つのメディアアクセス制御ユニットとの間の新たな結合を確立することを含む、請求項７に記載の機械可読媒体。
【請求項９】
前記プロトコルドライバへのＣＡＬＬ命令が前記リルーティングドライバ内の前記テンプレートへのＪＵＭＰで置換されるように、前記テンプレートジャンプが前記ネットワークドライバソフトウェアインタフェースに挿入され、該テンプレートが、該ＣＡＬＬ命令を含む、請求項８に記載の機械可読媒体。
【請求項１０】
遠隔ホストからネットワーク上の第１のターゲットコンピュータへとインストレーションアプリケーションおよびリルーティングドライバを送信することと、
該遠隔ホストから該第１のターゲットコンピュータへと該第１のターゲットコンピュータに該インストレーションアプリケーションを実行させるためのコマンドを送信することと、
該コマンドの受信に応答して、該第１のターゲットコンピュータが該インストレーションアプリケーションを実行することであって、該第１のターゲットコンピュータが、一組の結合に従って、一つ以上のメディアアクセス制御ユニットと一つ以上のプロトコルドライバとの間における通信を提供するネットワークドライバソフトウェアインタフェースを含む、ことと、
該ネットワークドライバソフトウェアインタフェースが該第１のターゲットコンピュータによって実行されている間において、かつ該第１のターゲットコンピュータを再起動させることなしに、該インストレーションアプリケーションの実行に応答して、該第１のターゲットコンピュータが、該ネットワークドライバソフトウェアインタフェースの改良に、該リルーティングドライバを該一組の結合によって提供された一つ以上の通信経路に挿入させる、ことであって、該第１のターゲットコンピュータがマルチプロセッサシステムを含み、該リルーティングドライバの挿入が、
該第１のセクションの前にコードをブロッキングコードで上書きすることによって、該ネットワークドライバソフトウェアインタフェースの完全な動作を停止せずに、該インストレーションアプリケーションが、該ネットワークドライバソフトウェアインタフェース内の少なくとも第１のセクションのコードへのアクセスをディセーブルすることと、
該ブロッキングコードが該プロセッサによって実行されている間において、該インストレーションアプリケーションが該第１のセクションのコードをパッチすることであって、該パッチは、該ネットワークドライバソフトウェアインタフェースからの呼び出し命令を転送するためのテンプレートジャンプをリルーティングドライバ内のテンプレートに挿入することを包含し、該テンプレートは、通信を制御するための新たなコンピュータコードを含み、該テンプレートジャンプおよびテンプレートは、該一つ以上のプロトコルドライバと該一つ以上のメディアアクセス制御ユニット間の通信を該リルーティングドライバが制御することを可能にする、ことと
をさらに包含する、ことと
を包含する、コンピュータに実装された方法。
【請求項１１】
前記ネットワークドライバソフトウェアインタフェースの改良が、静的パッチによってなされる、請求項１０に記載のコンピュータに実装された方法。
【請求項１２】
前記プロトコルドライバへのＣＡＬＬ命令が前記リルーティングドライバ内の前記テンプレートへのＪＵＭＰで置換されるように、前記テンプレートジャンプが前記ネットワークドライバソフトウェアインタフェースに挿入され、該テンプレートが、該ＣＡＬＬ命令を含む、請求項１１に記載のコンピュータに実装された方法。
【請求項１３】
前記ネットワークドライバソフトウェアインタフェースの改良が、動的パッチによってなされる、請求項１０に記載のコンピュータに実装された方法。
【請求項１４】
前記動的パッチが、前記リルーティングドライバ内のダイナミックパッチコードと少なくとも１つのメディアアクセス制御ユニットとの間の新たな結合を確立することをさらに含む、請求項１３に記載のコンピュータに実装された方法。
【請求項１５】
前記プロトコルドライバへのＣＡＬＬ命令が前記リルーティングドライバ内の前記テンプレートへのＪＵＭＰで置換されるように、前記テンプレートジャンプが前記ネットワークドライバソフトウェアインタフェースに挿入され、該テンプレートが、該ＣＡＬＬ命令を含む、請求項１４に記載のコンピュータに実装された方法。
【請求項１６】
プロセッサを備えたコンピュータシステムであって、該プロセッサは、
プロトコルドライバと、
ネットワークドライバソフトウェアインタフェースと、
メディアアクセス制御ユニットと、
リルーティングドライバであって、該リルーティングドライバのインストールの間において、該ネットワークドライバソフトウェアインタフェースの完全な動作が停止されないように、該ネットワークドライバソフトウェアインタフェース内の第１のセクションのコードは、該第１のセクションのコードの前に位置しているコードをブロッキングコードで上書きすることによってディセーブルされ、次いで、該ネットワークドライバソフトウェアインタフェースからの呼び出し命令を転送するためのテンプレートジャンプをリルーティングドライバ内のテンプレートに挿入することによって、該第１のセクションのコードがパッチされ、該テンプレートは、通信を制御するための新たなコンピュータコードを含み、該テンプレートジャンプおよびテンプレートは、一つ以上のプロトコルドライバおよび一つ以上のメディアアクセス制御ユニット間の通信を該リルーティングドライバが制御することを可能にする、リルーティングドライバと
を同時に実行し、
該ネットワークドライバソフトウェアインタフェースは、該プロトコルドライバと該メディアアクセス制御ユニットとの間における通信経路を規定する第１の結合を格納し、該ネットワークドライバソフトウェアインタフェースは、該メディアアクセス制御ユニットとパケットを通信するように結合されており、該ネットワークドライバソフトウェアインタフェースは、該リルーティングドライバと該パケットを通信するようにパッチされており、
該リルーティングドライバは、該ネットワークドライバソフトウェアインタフェースと同時に該プロセッサによって実行され、また、該プロトコルドライバと該パケットを通信するように結合されている、コンピュータシステム。
【請求項１７】
前記リルーティングドライバが、静的パッチコードをさらに含む、請求項１６に記載のコンピュータシステム。
【請求項１８】
前記リルーティングドライバが、動的パッチコードをさらに含む、請求項１６に記載のコンピュータシステム。
【請求項１９】
前記リルーティングドライバが、評価用に前記パケットのうちの一つ以上をバッファに格納するための取得ユニットをさらに含む、請求項１６に記載のコンピュータシステム。
【請求項２０】
前記ネットワークインタフェースが、前記リルーティングドライバと、前記メディアアクセス制御ユニットとの間における通信経路を規定する第２の結合をさらに格納し、該取得ユニットが、該リルーティングユニットに決まっている前記パケットを前記バッファに格納する、請求項１９に記載のコンピュータシステム。
【請求項２１】
コンピュータシステムにネットワークドライバおよびソフトウェアを遠隔からインストールし、該インストールの後に該コンピュータシステムを再起動しないためのリルーティングドライバであって、該コンピュータシステムは、オペレーティングシステムとマルチプロセッサとを有しており、該マルチプロセッサにおいて、ネットワークドライバソフトウェアインタフェースは、該コンピュータシステム上の少なくとも１つのプロトコルドライバと少なくとも１つのメディアアクセス制御ユニットとの間における情報の通信を提供し、該リルーティングドライバは、
該リルーティングドライバを制御するための制御コードと、
該ネットワークドライバソフトウェアインタフェースと該リルーティングドライバとが同時に実行されている間において、該リルーティングドライバが該少なくとも１つのメディアアクセス制御ユニットに結合されるように、該ネットワークドライバソフトウェアインタフェースにおいて少なくとも１つの結合を確立するための結合コードと、
該ネットワークドライバソフトウェアインタフェースにおける少なくとも第１のセクションのコードにテンプレートジャンプを挿入するためのパッチコードであって、該テンプレートジャンプは、該ネットワークドライバソフトウェアインタフェースと該リルーティングドライバとが同時に実行されている間において、該少なくとも１つのプロトコルドライバに宛先決定さている該少なくとも１つメディアアクセス制御ユニットからの情報が該リルーティングドライバにリルーティングされるように、該リルーティングドライバ内のテンプレートへのジャンプを提供する、パッチコードと、
該ネットワークドライバソフトウェア内の少なくとも１つのテンプレートジャンプから情報を受取り、通信を制御するための挿入コードを備えている少なくとも１つのテンプレートと、
ブロッキングコードであって、該ブロッキングコードの後ろに配置されている該パッチコードの処理を防止し、該ネットワークドライバソフトウェアインタフェースの連続動作を可能にする、ブロッキングコードと、
該挿入コードであって、該ブロッキングコードを置換し、該テンプレートジャンプによって受信されたリルーティングされた情報を評価する、挿入コードと
を備える、リルーティングドライバ。
【請求項２２】
前記制御コードが、前記ネットワークドライバインタフェース命令コードの開始メモリアドレスを識別し、前記第１のセクションのコードへのアクセスをディセーブルし、さらに、前記パッチコードが、該ブロッキングコードを用いたアクセスの該ディセーブルに続いて、全ての所定のメモリアドレスがパッチされるように、該第１のセクションのコードと、さらなる所定のメモリアドレスとを上書きするように動作する、請求項２１に記載のリルーティングドライバ。
【請求項２３】
前記パッチコードが、前記ネットワークドライバソフトウェアインタフェースから送信された情報の受信に応答して、該ネットワークドライバインタフェースから情報が受信されるとメモリアドレスがインクリメント的にパッチされるように、該情報を送信した命令コードアドレスを決定し、該アドレスにおける前記第１のセクションのコードを上書きする、請求項２１に記載のリルーティングドライバ。
【請求項２４】
共有メモリとネットワークドライバソフトウェアインタフェースとを有しているマルチプロセッサシステム内のコードへのアクセスをディセーブルおよび再イネーブルするための方法であって、
該ネットワークドライバソフトウェアインタフェースの実行中において修正されるべき、中央処理装置内の該ネットワークドライバソフトウェアインタフェースの第１のセクションのコードを選択することと、
該ネットワークドライバソフトウェアインタフェースの実行中において該中央処理装置のキャッシュメモリに該ネットワークドライバソフトウェアインタフェースの該第１のセクションのコードを書き込むことと、
該キャッシュメモリ内の該第１のセクションのコードの一部をブロッキングコードで上書きすることであって、該ブロッキングコードは、該ネットワークドライバソフトウェアインタフェースの実行中において第１のバージョンのコードを作成するためにシリアル化命令のループをさせるコードを含んでいる、ことと、
該ネットワークドライバソフトウェアインタフェースの実行中において該第１のバージョンのコードを該共有メモリに書き込むことと、
該キャッシュメモリにおいて該第１のバージョンのコードを修正して第２のバージョンのコードを作成することであって、該ネットワークドライバソフトウェアインタフェースが該共有メモリ内で実行されているときにおいて該ネットワークドライバソフトウェアインタフェースの静的パッチをもたらすために、該ブロッキングコードの後のコードの一部が、テンプレートへの呼び出しを転送するためのテンプレートジャンプで上書きされ、該テンプレートは、通信を制御するための新たなコンピュータコードを含んでおり、該テンプレートジャンプとテンプレートとは、該新たなコンピュータコードが該一つ以上のメディアアクセス制御ユニットと該一つ以上のプロトコルドライバとの間における通信を制御することを可能にする、ことと、
該ネットワークドライバソフトウェアインタフェースの実行中において、該第２のバージョンのコードを該共有メモリに書き込むことと、
該キャッシュメモリにおいて該第２のバージョンのコードを第３のバージョンのコードを作成するためのコードを用いて修正することであって、該ネットワークドライバソフトウェアインタフェースの実行中において該ブロッキングコードを除去するように、該ブロッキングコードが上書きされる、ことと、
該ネットワークドライバソフトウェアインタフェースの実行中において、該第３のバージョンのコードを該共有メモリに書き込むことと
を包含する、方法。
【請求項２５】
命令を格納している機械可読媒体であって、該命令は、実行されたときにおいて、
ネットワークドライバソフトウェアインタフェースの実行中において、該ネットワークドライバソフトウェアインタフェースの第１のセクションのコードへのアクセスを、該第１のセクションのコードの前に配置されているコードをブロッキングコードで上書きすることによって、ディセーブルすることであって、該第１のセクションのコードは、メディアアクセス制御ユニットとアプリケーションとの間における通信経路を提供し、該第１のセクションのコードは一般的な呼び出しを含んでいる、ことと、
該ネットワークドライバソフトウェアインタフェースが該ブロッキングコードを実行している間において、該第１のセクションのコードを第２のセクションのコードで上書きすることと、
該ブロッキングコードを該第２のセクションのコードで上書きすることであって、該ネットワークドライバソフトウェアインタフェースの完全な動作は停止しない、ことと、
リルーティングドライバにおいて第３のセクションのコードに実行フローがリルーティングされるように、該第２のセクションのコードを実行することであって、該第２のセクションのコードは該第１のコードよりも大きくない、ことと、
該第３のセクションのコードが実行されていて、該ネットワークドライバソフトウェアインタフェースが該第２のセクションのコードを実行しているときにおいて、該通信経路を完全にし、実行フローをリターンすることであって、該第３のセクションのコードは、該第１のセクションのコードに存在しないさらなるコードを含んでおり、該第１のセクションのコードは、ここでは、該通信経路に挿入されており、該メディアアクセス制御ユニットと該アプリケーションとの間の通信を制御する、ことと
を一組の一つ以上のプロセッサに実行させる、機械可読媒体。
【請求項２６】
前記第２のセクションのコードが、前記第３のセクションのコード内のテンプレートへのテンプレートジャンプを含んでいる、請求項２５に記載の機械可読媒体。