NdisRegisterDeviceEx 関数 (ndis.h)

NdisRegisterDeviceEx 関数は、指定した属性に基づいてデバイス オブジェクトを作成します。

構文

NDIS_STATUS NdisRegisterDeviceEx(
  [in]  NDIS_HANDLE                    NdisHandle,
  [in]  PNDIS_DEVICE_OBJECT_ATTRIBUTES DeviceObjectAttributes,
  [out] PDEVICE_OBJECT                 *pDeviceObject,
  [out] PNDIS_HANDLE                   NdisDeviceHandle
);

パラメーター

[in] NdisHandle

ミニポート ドライバー ハンドルまたはフィルター ドライバー ハンドル呼び出し元がを呼び出すことによって取得します。 NdisMRegisterMiniportDriver 関数または NdisFRegisterFilterDriver 関数はそれぞれです。

[in] DeviceObjectAttributes

へのポインター NDIS_DEVICE_OBJECT_ATTRIBUTES 新しいデバイスの属性を含む構造体です。

[out] pDeviceObject

呼び出しが成功した場合に、新しく作成された DEVICE_OBJECT 構造体へのポインターを指すポインター。 呼び出しが失敗した場合、 pDeviceObjectNULL を指すように設定されます。

[out] NdisDeviceHandle

呼び出し元が指定した変数へのポインター。この関数が成功すると、デバイス オブジェクトへのハンドルが返されます。 このハンドルは、ドライバーが後で呼び出す NdisDeregisterDeviceEx 関数に必要なパラメーターです。

戻り値

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

リターン コード 説明
NDIS_STATUS_SUCCESS
NdisRegisterDeviceEx が デバイスを正常に登録しました。
NDIS_STATUS_NOT_SUPPORTED
呼び出し元は NDIS ドライバーではありません。
NDIS_STATUS_XXX または NTSTATUS_XXX
ドライバーがデバイスを登録しようとしましたが失敗しました。 通常、このようなエラー状態は NdisXxx 関数またはカーネル モード サポート ルーチンから伝達されます。

注釈

ミニポート ドライバーとフィルター ドライバーは、 NdisRegisterDeviceEx を呼び出して仮想デバイスを登録できます。

メモNDIS ドライバーは、NdisRegisterDeviceEx が作成したDEVICE_OBJECT構造体の DeviceExtension メンバーを変更することはできません。
 
NDIS ドライバーがデバイス オブジェクト内のコンテキスト情報の領域を必要とする場合、ドライバーは 内の ExtensionSize メンバーの 0 以外の値を渡すことができます。deviceObjectAttributes パラメーターで構造体をNDIS_DEVICE_OBJECT_ATTRIBUTESします。 この場合、NDIS はドライバーの拡張機能を割り当て、ドライバーは を呼び出すことができます。拡張機能へのポインターを取得する NdisGetDeviceReservedExtension 関数。

デバイスが不要になったら、ドライバーは後で NdisDeregisterDeviceEx 関数を呼び出す必要があります。 NdisRegisterDeviceEx に拡張機能が割り当てられている場合、NdisDeregisterDeviceEx は拡張機能を解放します。

要件

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

こちらもご覧ください

DEVICE_OBJECT

NDIS_DEVICE_OBJECT_ATTRIBUTES

NdisDeregisterDeviceEx

NdisFRegisterFilterDriver

NdisGetDeviceReservedExtension

NdisMRegisterMiniportDriver