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 ドライバーは、NDIS インターフェイス プロバイダーとして登録する初期化中に 1 回、NdisIfRegisterProvider 関数を呼び出します。 たとえば、ドライバーは、DriverEntry ルーチンから NdisIfRegisterProvider 呼び出すことができます。 インターフェイス プロバイダーは、MIB (RFC 2863 ) をサポートするネットワーク インターフェイスを管理するソフトウェア コンポーネントです。
インターフェイス プロバイダー OID 要求を処理するために、インターフェイス プロバイダーは、コールバック関数のエントリ ポイントを提供します。NdisIfRegisterProvider の ProviderCharacteristics パラメーターにある構造体 NDIS_IF_PROVIDER_CHARACTERISTICS します。
NDIS インターフェイス プロバイダーは、ネットワーク インターフェイスを登録する NdisIfRegisterInterface 関数を呼び出します。 プロバイダーは複数のインターフェイスを登録できます。
NdisIfRegisterProvider 成功した場合は、pNdisProviderHandle パラメーターが指す位置にあるハンドルを返します。 インターフェイス プロバイダーは、インターフェイス プロバイダー ハンドルを必要とする後続の呼び出しで使用するために、このハンドルを保持する必要があります。 たとえば、ドライバーがアンロード 前に NdisIfDeregisterProvider を呼び出す必要があります。
インターフェイス プロバイダーではなくなったコンポーネントは、NdisIfDeregisterProvider 関数をいつでも呼び出して、ドライバーが NdisIfRegisterProvider を呼び出したときに NDIS が割り当てたインターフェイス プロバイダー リソース解放できます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | NDIS 6.0 以降でサポートされています。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | ndis.h (Ndis.h を含む) |
ライブラリ | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 を する | Irql_Interfaces_Function(ndis) |
関連項目
NDIS_IF_PROVIDER_CHARACTERISTICSNdisIfDeregisterProvider の
NdisIfRegisterInterface の