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 は 、次のいずれかの状態値を返します。

リターン コード 説明
NDIS_STATUS_SUCCESS
操作は正常に完了しました。
NDIS_STATUS_RESOURCES
リソースが不足しているため、操作が失敗しました。
NDIS_STATUS_INVALID_PARAMETER
NdisIfRegisterProvider がプロバイダーを登録できませんでした。ProviderCharacteristics パラメーターのNDIS_IF_PROVIDER_CHARACTERISTICS構造体に無効なメンバー データが含まれていました。
NDIS_STATUS_NOT_SUPPORTED
NdisIfRegisterProvider は、NDIS_IF_PROVIDER_CHARACTERISTICS の Header メンバーがサポートされていない構造体のバージョンを指定しているため、プロバイダーを登録できませんでした。

注釈

NDIS ドライバーは、初期化中に NdisIfRegisterProvider 関数を 1 回呼び出して、NDIS インターフェイス プロバイダーとして登録します。 たとえば、ドライバーは DriverEntry ルーチンから NdisIfRegisterProvider を呼び出すことができます。 インターフェイス プロバイダーは、MIB ( RFC 2863) をサポートするネットワーク インターフェイスを管理するソフトウェア コンポーネントです。

インターフェイス プロバイダー OID 要求を処理するために、インターフェイス プロバイダーは、 のコールバック関数のエントリ ポイントを提供します。NdisIfRegisterProviderProviderCharacteristics パラメーターで構造体を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)

こちらもご覧ください

DriverEntry

NDIS_IF_PROVIDER_CHARACTERISTICS

NdisIfDeregisterProvider

NdisIfRegisterInterface