NdisIfRegisterProvider 関数 (ndis.h)
NdisIfRegisterProvider 関数は、NDIS ネットワーク インターフェイス プロバイダーを登録します。
構文
NDIS_STATUS NdisIfRegisterProvider(
[in] PNDIS_IF_PROVIDER_CHARACTERISTICS ProviderCharacteristics,
[in] NDIS_HANDLE IfProviderContext,
PNDIS_HANDLE pNdisIfProviderHandle
);
パラメーター
[in] ProviderCharacteristics
呼び出し元が指定したへのポインター NDIS_IF_PROVIDER_CHARACTERISTICS 構造体。 この構造体は、プロバイダーコールバック関数のエントリ ポイントなど、プロバイダーの特性を定義します。
[in] IfProviderContext
このネットワーク インターフェイス プロバイダーの呼び出し元が指定したコンテキスト領域へのハンドル。 コンテキスト領域がない場合は、このパラメーターを NULL に 設定します。
pNdisIfProviderHandle
呼び出し元によって提供されるハンドル変数へのポインター。 登録操作が成功した場合、NDIS は、ネットワーク インターフェイス プロバイダーを識別するこの変数にハンドルを書き込みます。 インターフェイス プロバイダーは、インターフェイス プロバイダー ハンドルを必要とする後続の呼び出しで使用するために、このハンドルを保持する必要があります。
戻り値
NdisIfRegisterProvider は 、次のいずれかの状態値を返します。
リターン コード | 説明 |
---|---|
|
操作は正常に完了しました。 |
|
リソースが不足しているため、操作が失敗しました。 |
|
NdisIfRegisterProvider がプロバイダーを登録できませんでした。ProviderCharacteristics パラメーターのNDIS_IF_PROVIDER_CHARACTERISTICS構造体に無効なメンバー データが含まれていました。 |
|
NdisIfRegisterProvider は、NDIS_IF_PROVIDER_CHARACTERISTICS の Header メンバーがサポートされていない構造体のバージョンを指定しているため、プロバイダーを登録できませんでした。 |
注釈
NDIS ドライバーは、初期化中に NdisIfRegisterProvider 関数を 1 回呼び出して、NDIS インターフェイス プロバイダーとして登録します。 たとえば、ドライバーは DriverEntry ルーチンから NdisIfRegisterProvider を呼び出すことができます。 インターフェイス プロバイダーは、MIB ( RFC 2863) をサポートするネットワーク インターフェイスを管理するソフトウェア コンポーネントです。
インターフェイス プロバイダー OID 要求を処理するために、インターフェイス プロバイダーは、 のコールバック関数のエントリ ポイントを提供します。NdisIfRegisterProvider の ProviderCharacteristics パラメーターで構造体をNDIS_IF_PROVIDER_CHARACTERISTICSします。
NDIS インターフェイス プロバイダーは、ネットワーク インターフェイスを登録するために NdisIfRegisterInterface 関数を呼び出します。 プロバイダーは、複数のインターフェイスを登録できます。
NdisIfRegisterProvider が成功すると、pNdisProviderHandle パラメーターが指す位置にあるハンドルが返されます。 インターフェイス プロバイダーは、インターフェイス プロバイダー ハンドルを必要とする後続の呼び出しで使用するために、このハンドルを保持する必要があります。 たとえば、ドライバーは、ドライバーがアンロードする前に NdisIfDeregisterProvider を呼び出す必要があります。
インターフェイス プロバイダーでなくなったコンポーネントは、 NdisIfDeregisterProvider 関数をいつでも呼び出して、ドライバーが NdisIfRegisterProvider を呼び出したときに NDIS によって割り当てられたインターフェイス プロバイダー リソースを解放できます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.0 以降でサポートされています。 |
対象プラットフォーム | デスクトップ |
Header | ndis.h (Ndis.h を含む) |
Library | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | Irql_Interfaces_Function(ndis) |