NdisMRegisterMiniportDriver 関数 (ndis.h)

ミニポート ドライバーは、 NdisMRegisterMiniportDriver 関数を呼び出して、初期化の最初の手順として NDIS に MiniportXxx エントリ ポイントを登録します。

構文

NDIS_STATUS NdisMRegisterMiniportDriver(
  [in]           PDRIVER_OBJECT                        DriverObject,
  [in]           PUNICODE_STRING                       RegistryPath,
  [in, optional] NDIS_HANDLE                           MiniportDriverContext,
  [in]           PNDIS_MINIPORT_DRIVER_CHARACTERISTICS MiniportDriverCharacteristics,
  [out]          PNDIS_HANDLE                          NdisMiniportDriverHandle
);

パラメーター

[in] DriverObject

ミニポート ドライバーが Argument1 パラメーターで DriverEntry ルーチンで受け取った不透明なドライバー オブジェクトへのポインター (「NDIS ミニポート ドライバーの DriverEntry」を参照)。

[in] RegistryPath

ミニポート ドライバーが Argument2 パラメーターで DriverEntry ルーチンで受け取った不透明なレジストリ パスへのポインター。

[in, optional] MiniportDriverContext

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

[in] MiniportDriverCharacteristics

へのポインター 呼び出し 元が初期化した構造体をNDIS_MINIPORT_DRIVER_CHARACTERISTICSします。

[out] NdisMiniportDriverHandle

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

戻り値

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

リターン コード 説明
NDIS_STATUS_SUCCESS

NdisMRegisterMiniportDriver がミニポート ドライバーを正常に登録しました。

NDIS_STATUS_BAD_CHARACTERISTICS
CharacteristicsLength パラメーターは、MiniportDriverCharacteristics の 構造体の MajorNdisVersion メンバーで指定されている NDIS バージョンでは正しくありません。
NDIS_STATUS_BAD_VERSION
特性構造で指定された MajorNdisVersion または MinorNdisVersion が無効です。
NDIS_STATUS_RESOURCES
リソースの不足 (メモリの可能性あり) により、NDIS による呼び出し元の登録が妨げられる。
NDIS_STATUS_FAILURE
これは既定のエラー状態であり、上記のエラーのいずれも登録に失敗しなかった場合に返されます。

注釈

NDIS ドライバーは、その DriverEntry ルーチンから NdisMRegisterMiniportDriver を呼び出します。 詳細については、「 NDIS ミニポート ドライバーの DriverEntry」を参照してください。

すべてのミニポート ドライバーは、特性構造を設定し、NdisMRegisterMiniportDriver を呼び出すことによって、標準の MiniportXxx 関数のセットをエクスポートします。 NDIS は、NDIS 内部記憶域に特性構造をコピーします。 したがって、登録した後、ドライバーは 、そのミニポートXxx エントリ ポイントを変更することはできません。

その仮想ミニポート インターフェイスを登録するには、NDIS 中間ドライバーは、ミニポートDriverCharacteristics の 構造体に設定されたNDIS_INTERMEDIATE_DRIVER フラグを使用して NdisMRegisterMiniportDriver を呼び出す必要があります。 WDM の下端を持つ NDIS ドライバーは、ミニポートDriverCharacteristics の 構造体に設定されたNDIS_WDM_DRIVER フラグを使用して NdisMRegisterMiniportDriver を呼び出す必要があります。

ドライバーは、組み合わされたミニポート ドライバーと中間ドライバーとして登録できます。 その物理ミニポート ドライバーを登録するには、ミニポート 中間ドライバーは、任意のミニポート ドライバーの場合と同様に、適切なパラメーターを使用して NdisMRegisterMiniportDriver を呼び出します。 仮想ミニポート インターフェイスを登録するために、ドライバーは NdisMRegisterMiniportDriver をもう一度呼び出しますが、NDIS_INTERMEDIATE_DRIVER フラグを MiniportDriverCharacteristics パラメーターに設定します。

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

ドライバーが NdisMRegisterMiniportDriver を呼び出した後、DriverEntry が返された後は、いつでも MiniportDriverCharacteristics パラメーターで指定されている MiniportInitializeEx 関数でドライバーを呼び出すように準備する必要があります。

NdisMRegisterMiniportDriver が正常に戻った後に DriverEntry でエラーが発生した場合、ドライバーは を呼び出す必要があります。DriverEntry が返される前の NdisMDeregisterMiniportDriver 関数。 DriverEntry が成功した場合、ドライバーは MiniportDriverUnload 関数から NdisMDeregisterMiniportDriver を呼び出す必要があります。

要件

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

こちらもご覧ください

ミニポート ドライバーの初期化

DriverEntry

MiniportDriverUnload

MiniportInitializeEx

MiniportSetOptions

NDIS_MINIPORT_DRIVER_CHARACTERISTICS NdisMDeregisterMiniportDriver