NdisRegisterProtocolDriver 関数 (ndis.h)

プロトコル ドライバーは、 NdisRegisterProtocolDriver 関数を呼び出して 、その ProtocolXxx 関数を NDIS に登録します。

構文

NDIS_STATUS NdisRegisterProtocolDriver(
  [in, optional] NDIS_HANDLE                           ProtocolDriverContext,
  [in]           PNDIS_PROTOCOL_DRIVER_CHARACTERISTICS ProtocolCharacteristics,
  [out]          PNDIS_HANDLE                          NdisProtocolHandle
);

パラメーター

[in, optional] ProtocolDriverContext

ドライバーが状態と構成情報を保持するドライバー割り当てコンテキスト領域へのハンドル。

[in] ProtocolCharacteristics

へのポインター NDIS_PROTOCOL_DRIVER_CHARACTERISTICS プロトコル ドライバーがその ProtocolXxx 関数エントリ ポイントを使用して作成および初期化された構造体です。

[out] NdisProtocolHandle

呼び出し元が指定したハンドル変数へのポインター。 NDIS は、登録しているドライバーを一意に識別するこの変数にハンドルを書き込みます。 ドライバーは、後続の NdisXxx 関数呼び出しで使用するために、このハンドルを保存する必要があります。

戻り値

NdisRegisterProtocolDriver は 、次のいずれかの状態値を返します。

リターン コード 説明
NDIS_STATUS_SUCCESS

NdisRegisterProtocolDriver は、プロトコル ドライバーを登録した場合、NDIS_STATUS_SUCCESSを返します。

NDIS_STATUS_BAD_VERSION
ProtocolCharacteristics で構造体の MajorNdisVersion メンバーで指定されたバージョンが無効です。
NDIS_STATUS_BAD_CHARACTERISTICS
ProtocolCharacteristics パラメーターの構造体の一部のメンバーが無効です。
NDIS_STATUS_RESOURCES

リソースが不足しているため、NdisRegisterProtocolDriver が失敗しました。

NDIS_STATUS_FAILURE

上記の値が適用されない場合、NdisRegisterProtocolDriver はNDIS_STATUS_FAILUREを返します。

注釈

プロトコル ドライバーは、その DriverEntry ルーチンから NdisRegisterProtocolDriver 関数を呼び出します。 DriverEntry の詳細については、「NDIS プロトコル ドライバーの DriverEntry」を参照してください。

NdisRegisterProtocolDriver を呼び出すドライバーは、ProtocolXxx 関数のいずれかをすぐに呼び出すために準備する必要があります。

すべてのプロトコル ドライバーは、 を設定して ProtocolXxx 関数のセットをエクスポートします。 構造体をNDIS_PROTOCOL_DRIVER_CHARACTERISTICS し、 NdisRegisterProtocolDriver を呼び出します。 NDIS は、NDIS ライブラリの内部記憶域にこの構造体をコピーします。

プロトコル ドライバーがオプションのサービスを登録できるようにするには、NdisRegisterProtocolDriver のコンテキスト内で ProtocolSetOptions 関数を呼び出します。

プロトコル ドライバーは、 を呼び出します。 以前に NdisRegisterProtocolDriver で割り当てられたリソースを解放するための NdisDeregisterProtocolDriver 関数。

要件

要件
サポートされている最小のクライアント NDIS 6.0 以降でサポートされています。
対象プラットフォーム デスクトップ
Header ndis.h (Ndis.h を含む)
Library Ndis.lib
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 Irql_Protocol_Driver_Function(ndis)

こちらもご覧ください

NDIS プロトコル ドライバーの DriverEntry

NDIS_PROTOCOL_DRIVER_CHARACTERISTICS

NdisDeregisterProtocolDriver

NdisSetOptionalHandlers