認証レジストリ キー
ネットワーク プロバイダーをインストールする場合、アプリケーションでは、このトピックで説明するレジストリ キーと値を作成する必要があります。 これらのキーと値は、システムにインストールされているネットワーク プロバイダーに関する情報を 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 を呼び出します。 |
次の値は、資格情報管理機能 NPLogonNotify と NPPasswordChangeNotify をサポートするネットワーク プロバイダーでのみ使用されます。
値 | 説明 |
---|---|
クラス |
このプロバイダーがサポートするプロバイダー機能のクラス (型) を識別する 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"