高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先



*NW 41 - MacTCP、Open Transport、およびAppleTalkのGestaltセレクタ

(96 年 10 月 25 日)

Q: MacTCP、Open Transport、およびAppleTalkのGestaltセレクタについて教えてください。

A: 次に、それぞれのGestaltセレクタについて説明します。

MacTCP

MacTCPのGestaltセレクタは、'mtcp' です。

* MacTCP バージョン 1.0 から 1.0.3 は、このセレクタを登録しません。
* MacTCP バージョン 1.1 の戻り値は 1 です。
* MacTCP バージョン 1.1.1 の戻り値は 2 です。
* MacTCP バージョン 2.0 の戻り値は 3 です。

ドライバが開かれていないと、0 が返されます。

AppleTalk

AppleTalkのGestaltセレクタは、'atkv''atlk' です。

'atlk' は、基本的なバージョン情報を提供するために、AppleTalk バージョン 54 で導入されました。 'atlk' セレクタでGestaltを呼ぶと、関数の戻り値の下位バイトにメジャー・リビジョン・バージョンが返されます。たとえばGestaltまたは MacsBuG 経由で 'atlk' セレクタを渡し、戻り値が 0x0000003C であるときは、AppleTalk バージョン 60 が存在することを意味します (セレクタで AppleTalk が“不使用”になっているとき、'atlk' セレクタは使えません)。

'atkv' は、'vers' リソースを使って詳細なバージョン情報を提供するために、AppleTalk バージョン 56 で導入されました。たとえば、Gestaltまたは MacsBuG 経由で AppleTalk バージョン 60 に 'atkv' セレクタを渡すとALONGINT 型の 0x3C108000 という戻り値が返されます。

Open Transport
Open TransportのGestaltセレクタは、'otan''otvr' です。'otan' セレクタを含むGestalt関数を使うと、Open Transport と、そのさまざまな構成要素が使用可能であるかどうかをテストすることができます。現在使われているビットはAOpenTransport.h 内の定数によって定義されています。次に、これらの定数を示します。

enum {
        gestaltOpenTpt = 'otan',
        gestaltOpenTptPresent = 0x00000001,
        gestaltOpenTptLoaded = 0x00000002,
        gestaltOpenTptAppleTalkPresent = 0x00000004,
        gestaltOpenTptAppleTalkLoaded = 0x00000008,
        gestaltOpenTptTCPPresent = 0x00000010,
        gestaltOpenTptTCPLoaded = 0x00000020,
        gestaltOpenTptNetwarePresent = 0x00000040,
        gestaltOpenTptNetwareLoaded = 0x00000080
};

Gestalt関数にエラーが発生することなく、ゼロでない戻り値が返されると、Open Transport は使用可能です。OT、AppleTalk、TCP、または NetWare が存在するかどうかを検出するには、上に示した応答パラメータのビットを検査します。たとえば、Gestaltまたは MacsBug 経由で 'otan' セレクタを渡し、戻り値が 0x0000001F であれば、Open Transport が存在し、ロードされていることを意味します。AppleTalk ドライバも存在し、ロードされています。また、MacTCP も存在しますが、ロードされていません。

'otvr' セレクタは、NumVersion フォーマットで Open Transport のバージョンを取得するために使います。たとえばGestaltまたは MacsBug 経由で OT バージョン 1.1.1b9 に ''otvr'セレクタを渡すと、ALONGINT 型の 0x01116009 という戻り値が返されます (なお、OT バージョン 1.0 から 1.0.8 では、このセレクタは登録されません)。アップルのバージョン番号の形式と NumVersion フォーマットの詳細については、『Technote OV12:Version Territory』を参照してください。

Open Transport / PPP
Open Transport / PPP の Gestalt selectorは、'otra''otrv' です。Open Transport / PPPとそのパートが利用可能かどうかは、'otra' selectorを指定したGestalt関数でわかります。これらのビットの使い方は、OpenTptPPP.hで定義されています。OT/PPP SDK と以下を参照してください。

enum {
        gestaltOpenTptRemoteAccess      = 'otra',

        gestaltOpenTptRemoteAccessPresent       = 0x00000000,
        gestaltOpenTptRemoteAccessLoaded        = 0x00000001,
        gestaltOpenTptRemoteAccessClientOnly    = 0x00000002,
        gestaltOpenTptRemoteAccessPServer       = 0x00000003,
        gestaltOpenTptRemoteAccessMPServer      = 0x00000004,
        gestaltOpenTptPPPPresent                = 0x00000005,
        gestaltOpenTptARAPPresent               = 0x00000006
 };

注意: OpenTransport / PPPを使う control strip や startup item を作成するときは、remote access softwareが完全にロードされるまでに、数回のイベント・サイクルがかかります。'otra' gestaltgestaltOpenTptRemoteAccessPresentのビットを見て remote access softwareが利用可能かどうか調べ、次にローディングが終了したかどうかをgestaltOpenTptRemoteAccessLoadedをポーリングして調べてください。

Open Transport / PPP APIの利用方法の詳細につきましては、OpenTransportのWebサイトReference and Technical Documentation にある、Open Transport/PPP developer Note を参照してください。

Open Transport / Modem
Open Transport/ModemのGestalt selectorは、'otmo''otmv'です。Open Transport / Modemとそのパートが利用可能かどうかは、'otmo' selectorを指定したGestalt関数でわかります。

enum {
        gestaltOpenTptModem         = 'otmo',

        gestaltOpenTptModemPresent      = 0x00000000
 };
-- Sandhya Vora
devsupport@apple.com

[ Technical Q&A's : Communications & Collaboration : Networking : NW41 ]