PWJ2575 - 95/06 |
この資料は以下の製品について記述したものです。
この資料は、PC/AT コンパチブルでない機種上でネットワークを起動していない時、16 ビット版 OLE .0x のCoCreateGuid APIを呼び出すと、システムがハングアップなどの誤動作をすることについて説明し、対処方法を示したものです。
PC/AT コンパチブルでない機種上でネットワークを起動していない時、16 ビット版 OLE 2.0x のCoCreateGuid APIを呼び出すと、システムがハングアップなどの誤動作をする場合があります。
CoCreateGuid API は、固有な ID(Guid) を生成するために使われる OLE2.0x の API です。CoCreateGuid は、オブジェクトを区別するための固有な ClassID などの生成に利用されています。
CoCreateGuid API は、NetBios の有無をチェックし、NetBios が存在する(ネットワークを起動している)場合には、NetBios で、Network カードのアドレス番号(カードごとに固有な値)を取得し、それをもとに確実に固有な ID を生成します。また、NetBios が存在しない場合は、ソフトウェアで ID を生成しています。
16 ビット版の OLE 2.0x を再配布するアプリケーションを作成している場合。そのアプリケーションが、PC/AT コンパチブル以外の機種にインストールされた時に、インストール先のシステムで誤動作する可能性があります。
PC/AT コンパチブル以外の機種でOLE 2.0x SDK に含まれる GuidGen.exeを利用してGuid を取得する場合。GuidGen.exe を実行すると、ハングアップする場合があります。
現在弊社にてOLEモジュールの修正を検討しておりますが、当該モジュールが既に広く流通しているため、現行バージョンでの対策が必要であろうと考えております。そこで当面の対策として、OLE 2.0xとともに出荷されるアプリケーションのセットアップ・プログラムにおきまして、下記の通りの処理を施していただきたくお願い申し上げます。
この障害は、PC/AT コンパチブル以外の機種で NetBiosの有無のチェックが正しくおこなわれず、NetBios が存在しないにもかかわらず、NetBios を利用しようとするために発生しています。
現象1) に対して、そのアプリケーションのセットアップ プログラムで、WritePrivateProfileString API を利用してCompobj.ini の [CoCreateGuid] セクションに、以下の行を追加します。
ForceRandom=1
現象2) に対して、
Windows ディレクトリ直下の Compobj.ini の [CoCreateGuid] セクションに、以下の行を記述します。
ForceRandom=1
ForceRandom=1 を指定すると、CoCreateGuid は NetBios を利用せず、常にソフトウェアで ID を生成するようになります。
マイクロソフト株式会社 テクニカル サポート
UP |
HOMEPAGE |