[KMDF にのみ適用]
WdfPdoInitAssignInstanceID メソッドは、子デバイスの インスタンス ID を更新します。
構文
NTSTATUS WdfPdoInitAssignInstanceID(
[in] PWDFDEVICE_INIT DeviceInit,
[in] PCUNICODE_STRING InstanceID
);
パラメーター
[in] DeviceInit
WDFDEVICE_INIT 構造体へのポインター。
[in] InstanceID
インスタンス ID 文字列を含む UNICODE_STRING 構造体へのポインター。 ドライバーは、ページングされたプールから文字列のバッファーを割り当てることができます。
戻り値
操作が成功した場合、メソッドはSTATUS_SUCCESSを返します。 その他の戻り値は次のとおりです。
| リターン コード | 説明 |
|---|---|
|
ドライバーが PDO ではなく FDO を初期化しています。 |
|
ドライバーは、インスタンス 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 の