次の方法で共有


WdfPdoInitAddCompatibleID 関数 (wdfpdo.h)

[KMDF にのみ適用]

WdfPdoInitAddCompatibleID メソッドは、子デバイスの互換性のある ID の一覧に互換性のある ID を追加します。

構文

NTSTATUS WdfPdoInitAddCompatibleID(
  [in] PWDFDEVICE_INIT  DeviceInit,
  [in] PCUNICODE_STRING CompatibleID
);

パラメーター

[in] DeviceInit

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

[in] CompatibleID

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

戻り値

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

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

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

注釈

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

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

次のコード例では、 トースター サンプル ドライバーが使用する互換性のある ID 値を報告します。

DECLARE_CONST_UNICODE_STRING(compatId, L"{B85B7C50-6A01-11d2-B841-00C04FAD5171}\\MsCompatibleToaster\0");

status = WdfPdoInitAddCompatibleID(
                                   DeviceInit,
                                   &compatId
                                   );

要件

要件
対象プラットフォーム ユニバーサル
最小 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)

こちらもご覧ください

WdfPdoInitAddHardwareID

WdfPdoInitAssignDeviceID

WdfPdoInitAssignInstanceID