次の方法で共有


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 文字列に変換し、デバイスのインスタンス ID として Unicode 文字列を登録します。

DECLARE_UNICODE_STRING_SIZE(instanceID, INSTANCEID_LENGTH);

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

必要条件

要件 価値
ターゲット プラットフォーム 普遍
最小 KMDF バージョン 1.0
ヘッダー wdfpdo.h (Wdf.h を含む)
図書館 Wdf01000.sys (フレームワーク ライブラリのバージョン管理を参照)。
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