WdfPdoInitAssignInstanceID 関数 (wdfpdo.h)

[KMDF にのみ適用]

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

構文

NTSTATUS WdfPdoInitAssignInstanceID(
  [in] PWDFDEVICE_INIT  DeviceInit,
  [in] PCUNICODE_STRING InstanceID
);

パラメーター

[in] DeviceInit

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

[in] InstanceID

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

戻り値

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

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

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

注釈

インスタンス ID の詳細については、「 デバイス識別文字列」を参照してください。

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

次のコード例では、デバイスのシリアル番号を Unicode 文字列に変換し、Unicode 文字列をデバイスのインスタンス ID として登録します。

DECLARE_UNICODE_STRING_SIZE(instanceID, INSTANCEID_LENGTH);

status =  RtlIntegerToUnicodeString(
                                    SerialNo,
                                    BASE_DEC,
                                    &instanceID
                                    );
status = WdfPdoInitAssignInstanceID(
                                    pDeviceInit,
                                    &instanceID
                                    );

要件

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

こちらもご覧ください

RtlIntegerToUnicodeString

WdfPdoInitAddCompatibleID

WdfPdoInitAddHardwareID

WdfPdoInitAssignDeviceID