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 は 、次のいずれかの状態値を返します。
リターン コード | 説明 |
---|---|
|
NdisMRegisterMiniportDriver がミニポート ドライバーを正常に登録しました。 |
|
CharacteristicsLength パラメーターは、MiniportDriverCharacteristics の 構造体の MajorNdisVersion メンバーで指定されている NDIS バージョンでは正しくありません。 |
|
特性構造で指定された MajorNdisVersion または MinorNdisVersion が無効です。 |
|
リソースの不足 (メモリの可能性あり) により、NDIS による呼び出し元の登録が妨げられる。 |
|
これは既定のエラー状態であり、上記のエラーのいずれも登録に失敗しなかった場合に返されます。 |
注釈
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) |