次の方法で共有


WdfPdoInitAddHardwareID 関数 (wdfpdo.h)

[KMDF にのみ適用]

WdfPdoInitAddHardwareID メソッドは、子デバイスのハードウェア ID の一覧にハードウェア ID を追加します。

構文

NTSTATUS WdfPdoInitAddHardwareID(
  [in] PWDFDEVICE_INIT  DeviceInit,
  [in] PCUNICODE_STRING HardwareID
);

パラメーター

[in] DeviceInit

WDFDEVICE_INIT構造体へのポインター。

[in] HardwareID

ハードウェア ID 文字列を含む UNICODE_STRING 構造体へのポインター。 ドライバーは、ページ プールから文字列のバッファーを割り当てることができます。

戻り値

操作が成功した場合、メソッドは STATUS_SUCCESSを返します。 その他の戻り値は次のとおりです。

リターン コード 説明
STATUS_INVALID_DEVICE_REQUEST
ドライバーは、PDO ではなく FDO を初期化しています。
STATUS_INSUFFICIENT_RESOURCES
ドライバーは、ハードウェア ID 文字列を格納する領域を割り当てませんでした。
 

メソッドは、他の NTSTATUS 値を返す場合もあります。

注釈

ドライバーは、デバイスの 1 つ以上のハードウェア ID を追加できます。 これらは、最適な一致から最悪の一致に向けて追加する必要があります。 フレームワークは、追加された順序で PnP マネージャーに ID を配信します。 ハードウェア ID の詳細については、「 デバイス識別文字列 」および 「セットアップでドライバーを選択する方法」を参照してください。

ドライバーは、WdfDeviceCreate を呼び出す前に WdfPdoInitAddHardwareID を呼び出す必要があります。 WdfDeviceCreate の呼び出しの詳細については、「フレームワーク デバイス オブジェクトの作成」を参照してください。

次のコード例では、 KbFiltr サンプル ドライバーが使用するハードウェア ID を報告します。

#define  KBFILTR_DEVICE_ID L"{A65C87F9-BE02-4ed9-92EC-012D416169FA}\\KeyboardFilter\0"
DECLARE_CONST_UNICODE_STRING(hardwareId, KBFILTR_DEVICE_ID);

status = WdfPdoInitAddHardwareID(
                                 pDeviceInit,
                                 &hardwareId
                                 );

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
Header wdfpdo.h (Wdf.h を含む)
Library Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 ChildDeviceInitAPI(kmdf), DriverCreate(kmdf)InitFreeDeviceCallback(kmdf)InitFreeDeviceCreate(kmdf)InitFreeNull(kmdf)KmdfIrql(kmdf)、KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)、PdoDeviceInitAPI(kmdf)PdoInitFreeDeviceCallback(kmdf)PdoInitFreeDeviceCreate(kmdf)

こちらもご覧ください

WdfPdoInitAddCompatibleID

WdfPdoInitAssignDeviceID

WdfPdoInitAssignInstanceID