次の方法で共有


WdfPdoInitAssignDeviceID 関数 (wdfpdo.h)

[KMDF にのみ適用]

WdfPdoInitAssignDeviceID メソッドは、子デバイスのデバイス ID を更新します。

構文

NTSTATUS WdfPdoInitAssignDeviceID(
  [in] PWDFDEVICE_INIT  DeviceInit,
  [in] PCUNICODE_STRING DeviceID
);

パラメーター

[in] DeviceInit

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

[in] DeviceID

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

戻り値

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

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

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

注釈

通常、デバイス ID は、デバイスが報告するハードウェア ID の一覧の最初の項目です。 デバイス ID とハードウェア ID の詳細については、「 デバイス識別文字列 」および「 ドライバーの選択方法」を参照してください。

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

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

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

status = WdfPdoInitAssignDeviceID(
                                  pDeviceInit,
                                  &deviceId
                                  );

要件

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

WdfPdoInitAddHardwareID

WdfPdoInitAssignInstanceID