この記事は2006年に書き直されたので、Windows Vistaのリリース前に、もちろんレイモンドは既に答えていました。 そのため、実験の純度のために、コメントを台無しにしないでください。
皆さん、こんにちは。1つの本当の互換性の問題を解決するチャンスがあります。 まだ答えがありません。解決するのを待っています。 これは、Widnows Vistaトラッカーの本当のバグです。
そのため、ベータテスターは、Windowsエクスプローラーは、特定の製造元のサーバーにあるネットワークフォルダーから100個を超えるファイルを表示できないと述べました。 責任あるチームは問題を調査し、サーバーが一部のタイプのリクエストを正しく処理しないことを発見しました。 サーバーは「高速」と「低速」の両方の要求をサポートすると述べているにもかかわらず、ディレクトリから最初の100個のファイルのみを「高速」要求に返し、奇妙なエラーコードを発行しました。 一方、エクスプローラーが「低速」モードに切り替えられた場合、すべてが正常に機能しました。 (「高速」要求はWindows Vistaでのみ表示され、Windows XPは「低速」要求のみをサポートしていました)。 追加情報:このエラーを修正するサーバーソフトウェアの更新プログラムは既にリリースされていますが、ベンダーは引き続き古いバージョンのドライバーを提供しています。
そのような状況で何をしますか? いくつかのオプションがあります。独自のオプションを選択するか、新しいオプションを提案してください。
何もしない
サードパーティのドライバーの誤動作に注意を払ってはいけません。 そのようなデバイスを購入する運が良くない人は、不完全なファイルのリストを受け取ります。 問題を説明するナレッジベースを公開し、更新されたドライバーについてユーザーをベンダーに案内します。
長所
- オペレーティングシステムは互換性ハッキングなしで「クリーン」のままです。
短所
- この問題を抱えているユーザーは、それが存在することに気付かないこともあります。 ユーザーが何かに気付いたとしても、ベンダー(またはディストリビューター)の名前でKBを検索して、問題があるかどうかを知ることはほとんどありません。 また、ユーザーがKBを見つけたとしても、ディストリビューターを迂回して製造元に直接連絡する必要があり、これは保証に違反する可能性があります。
- ファイルサーバーがNASとして機能する場合、ユーザーはほとんどの場合、密封されたプラスチックの箱の中で何が機能するかさえ知りません。 アップグレードするには、ベンダーが新しいファームウェアをリリースし、それまでユーザーがデータの損失に耐えるまで待つ必要があります。
- サーバーがユーザーの制御下にない場合、管理者にドライバーのアップグレードについて尋ねる必要があり、管理者がこれを行うことを期待します。
- Windows XPは「高速」クエリを使用せず、この問題がないため、ユーザーはこれをWindows Vistaのバグと見なします。
誤ったドライバーを自動的に診断し、警告ダイアログを発行する
Explorerはこの奇妙なエラーコードを認識し、「Server \\ servernameは古いバージョンのXYZドライバーで動作するようです。多数のファイルがあるディレクトリでは正しく動作しません。 すべてのファイルがここに表示されるわけではありません。 \\ servername管理者に連絡して、ドライバーをアップグレードしてください。 そして、チェックボックス「今後メッセージを表示しない」。
長所
短所
- ユーザーはこの不完全な結果に対して何もできません。 「ハハ、あなたが失った!」
- ユーザーはサーバー管理者が誰であるかを知らないことが多く、管理者に連絡したいという要望は通常、「うわー、これは誰ですか?」、あるいは「私です! そして、私はこのメッセージの意味を絶対に理解していません。」 (ホームNASを思い出してください)
- 管理者は、サーバー上のドライバーをアップグレードしない独自の理由を持っている場合があり(たとえば、それが保証に違反しているため)、ユーザーが新しいダイアログの内容を常に通知することを喜ばないでしょう。
- また、Windows XPは「高速」クエリをサポートしていないため、ユーザーはこれをWindows Vistaのバグと見なします。
誤ったドライバーを自動的に診断し、次回に異なるタイプの要求を適用する
Explorerはこの奇妙なエラーコードを認識し、「OK、このサーバーには誤ったドライバーがあります。 何もするのは遅すぎますが、次回は、遅いリクエストを使用してサーバーにアクセスします。」
DOS攻撃の可能性を排除するには、たとえば最後の16台のサーバーのみを覚えておく必要があります(リストが無制限の場合、攻撃者はこのエラーコードで数百万の異なる名前で応答するサーバーを作成することにより、すべてのメモリを使い果たすことができます)。
長所:
- Windowsは問題を自動的に検出して解決します。
短所
- サーバーからのファイルの最初のリストは依然として正しくありません。
- 定期的に16の(たとえば)サーバーにアクセスする場合、17にアクセスすると最初のサーバーがキャッシュを離れ、次回は再び間違ったリストを返します。
- ネットワーク管理者が「不良」サーバーのリストを判別できるメカニズムを開発することもできます。
- また、Windows XPは高速クエリをサポートしていないため、ユーザーはこれをWindows Vistaのバグと見なします。
「低速」モードを含むネットワーククライアントで設定を行います。
ネットワーククライアントに設定を追加します。「サーバーが高速要求をサポートしているかどうか尋ねられたら、サーバーが「はい」と言っても、常に「いいえ」と答えてください。」 この場合、どのプログラムも「高速」モードを使用しようとせず、誰もが低速モードのみを使用します。 しかし、少なくともそれは動作します。
長所
- この設定が有効になっている場合、ユーザーは誤ったデータを受け取ることはありません。
短所
- 定義は自動ではないため、問題は最初のケース「何もしない」と同じです。 ユーザーは、KBでこの設定を見つけるために問題があることと、何を探すべきかを知っている必要があります。 これに先立ち、まとめはWindows Vistaのバグのように見えます。
- 正常に動作するサーバーは、「高速」要求を正しくサポートしているにもかかわらず、低速モードでも動作します。
Explorerで「スロー」モードをオンにする設定を行います
Explorerで「常に低速モードを使用し、高速クエリを使用しない」という設定を行います。 要求は遅くなりますが、常に機能します。 ただし、これはExplorerにのみ影響します。 「サーバーは高速クエリをサポートしていますか?」と尋ねる他のプログラムは、対応する回答を受け取り、「高速」クエリを使用しようとすると、Explorerがすでに解決した同じ問題をすべて受け取ります。
長所
- この設定が有効になっている場合、ユーザーは誤ったデータを受け取ることはありません。
短所
- さらに、前の段落で示されているように、各プログラムにはこの動作のための独自の設定があります。
デフォルトの高速モードを無効にする
信頼性が低いため、ネットワーククライアントでの高速モードのサポートを停止します。 一部のサーバーは正しくサポートしていません。 これにより、すべてのプログラムが強制的に低速モードを使用するようになります。 ただし、再度有効にする機会は残してください。
長所:
短所:
- 「クイックモード」はまったく開発できませんでした。 デフォルトでは無効になっており、有効にすることはほとんどありません。すべてがこのように機能するためです。
- サーバーが「高速」をサポートしているという事実にもかかわらず、クライアントが「スローモード」で動作するため、人々はマイクロソフトを不正行為のせいにするでしょう。 そして、もちろん、Microsoft製品は、制限なしで高速モードをサポートする競合他社に劣ります。
創造的である。 決定を下す場合は、賛否両論のリストも作成します。
別の明らかなオプションは、記事ではレイモンドによって説明されていませんが、コメントで回答しました。
最初の読み取りで、エラーが返された場合、すぐにリストを再読み取りして完全なリストを返し、サーバーが遅いかのように処理します。
ネットワーククライアントは、リクエストの完了時にリストを返さないが、実行時に非同期的に部分的に返されるため、適切ではありません。 したがって、リストの最初の部分は、ネットワーククライアントがエラーを受信し、リストの再読み取りが必要であることを認識する前であっても返されます(そしてクライアントプログラムによって使用されます)。
また、「Microsoftはプロトコルを開いて完全に文書化する必要がありますが、それはあなた自身の責任です」などのコメントにすぐに対応しています。 Raymondが書いているバグは、プロトコルの正しい実行とは関係ありません。