次の方法で共有


認証レジストリ キー

ネットワーク プロバイダーをインストールする場合、アプリケーションでは、このトピックで説明するレジストリ キーと値を作成する必要があります。 これらのキーと値は、システムにインストールされているネットワーク プロバイダーに関する情報を MPR に提供します。 MPR は、起動時にこれらのキーを確認し、検出されたネットワーク プロバイダー DLL を読み込みます。

ネットワーク プロバイダーに関する情報を保持する一連のキーを作成する前に、ネットワーク プロバイダーの名前を 注文 キーに追加する必要があります。 このキーは、次のキーのサブキーです。

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Control
            NetworkProvider

注文キーには、インストールされているプロバイダーを一覧表示する ProviderOrder という 1 つの値が含まれており、受け入れるプロバイダーが見つかるまでプロバイダーを循環させる操作中に試行する順序を指定します。

ProviderOrder 値には、キー名のコンマ区切りのリストが含まれています。 ProviderOrder の各キー名は、ネットワーク プロバイダーを識別します。 MPR はプロバイダーを循環するときに、この一覧に表示される順序でプロバイダーを呼び出します。

ProviderOrder に設定されているプロバイダー名は、そのプロバイダーに関する情報を含むレジストリ キーの名前としても使用する必要があります。 プロバイダー固有のレジストリ キーは、次のキーのサブキーとして作成されます。

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services

つまり、 ProviderOrder で指定されたプロバイダー名は、ネットワーク プロバイダー固有のキーのレジストリへのパスであり、次のパスを基準にしています。

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services

ネットワーク プロバイダー サービスがインストールされると、インストール アプリケーションは次のようにキーを追加する必要があります。

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services
            ProviderName

ここで、ProviderName、注文キーの ProviderOrder 値で指定されたネットワーク プロバイダーの名前です。 ProviderName キーの下の Group 値を "NetworkProvider" に設定する必要があります。 これにより、サービスがネットワーク プロバイダー グループ内にあると識別されます。

ProviderName、networkproviderサブキーも作成する必要があります。 このキーには、ネットワーク プロバイダーを記述する次の値が含まれています。

説明
名前
プロバイダーの名前を格納します。 この名前は、参照ダイアログ ボックスでネットワークの名前としてユーザーに表示され、NETRESOURCE 構造体で返される lpProvider フィールドと一致する必要があります。 この名前は製品名の一部のバリエーションである必要があります。明確で一意になるように、会社を示すものもあります。 たとえば、"MS-LanMan" は適切な名前ですが、"The Net" は不適切な選択になります。
ProviderPath
ネットワーク プロバイダーを実装する DLL の完全なパスを格納します。 MPR は、このパスで LoadLibrary を呼び出します。

次の値は、資格情報管理機能 NPLogonNotifyNPPasswordChangeNotify をサポートするネットワーク プロバイダーでのみ使用されます。

説明
クラス
このプロバイダーがサポートするプロバイダー機能のクラス (型) を識別する DWORD 。 必要に応じて、 OR 演算子で値を結合できます。 この有効な値は、WN_NETWORK_CLASS、WN_CREDENTIAL_CLASS、WN_PRIMARY_AUTHENT_CLASS、およびWN_SERVICE_CLASSです。
プロバイダーはプライマリ認証機能をサポートしている場合がありますが、別の手段を使用して、どの認証子がプライマリであるかを判断します。
Windows XP/2000: プライマリ認証子の切り替えはサポートされていないため、この値は無視されます。
AuthentProviderPath
これは、資格情報管理機能をエクスポートする DLL の完全修飾ファイル名です。 この値は、プロバイダーがCREDENTIAL_CLASSまたはPRIMARY_AUTHENT_CLASS プロバイダーとして識別される場合にのみ便利です (必須ではありません)。 このクラスのプロバイダーにこの値が存在しない場合、資格情報管理機能は ProviderPath 値によって識別される DLL からエクスポートされることが想定されます。 この値は、ネットワーク関数と資格情報マネージャー関数を個別の DLL にパッケージ化することが望ましい場合にのみ使用されます。

ネットワーク プロバイダーと資格情報マネージャーの登録に使用される値に加えて、レジストリに値を追加して DLL を登録し、接続通知を受信できます。 これを行うには、次のキーの下にREG_EXPAND_SZ値を作成します。

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Control
            NetworkProvider
               Notifyees

この値は、 接続通知 API を実装する DLL へのパスを指定する必要があります。 この値の名前は、既存の値名と競合しない限り、任意の名前にすることができます。

次の例は、LanmanWorkStation と AnotherNetSvc という 2 つのネットワーク プロバイダーがインストールされているシステムのレジストリ キーを示しています。 AnotherNetSvc は資格情報マネージャーでもあります。 この例では、キー名は太字で、値名は斜体です。

Hkey_local_machine\システム\CurrentControlSet\コントロール\NetworkProvider\順序

ProviderOrder = "LanmanWorkStation,AnotherNetSvc"

Hkey_local_machine\システム\CurrentControlSet\コントロール\NetworkProvider\Notifyees

MyNotifyApp = "c:\connect\connect.dll"

Hkey_local_machine\システム\CurrentControlSet\サービス\LanmanWorkStation\

Group = "NetworkProvider"

Hkey_local_machine\システム\CurrentControlSet\サービス\LanmanWorkStation\NetworkProvider

Name = "NT LanMan"ProviderPath = "ntlanman.dll"

クラス = 0x00000001 (WN_NETWORK_CLASS)

Hkey_local_machine\システム\CurrentControlSet\サービス\AnotherNetSvc\

Group = "NetworkProvider"

Hkey_local_machine\システム\CurrentControlSet\サービス\AnotherNetSvc\NetworkProvider

Name = "Another Network"ProviderPath = "c:\another\anet.dll"

クラス = 0x00000003 (WN_NETWORK_CLASS |WN_CREDENTIAL_CLASS)

AuthentProviderPath = "c:\another\anetCM.dll"