次の方法で共有


IoSetDevicePropertyData 関数 (wdm.h)

IoSetDevicePropertyData ルーチンは、デバイス プロパティの現在の設定を変更します。

構文

NTSTATUS IoSetDevicePropertyData(
  [in]           PDEVICE_OBJECT   Pdo,
  [in]           const DEVPROPKEY *PropertyKey,
  [in]           LCID             Lcid,
  [in]           ULONG            Flags,
  [in]           DEVPROPTYPE      Type,
  [in]           ULONG            Size,
  [in, optional] PVOID            Data
);

パラメーター

[in] Pdo

クエリ対象のデバイスの物理デバイス オブジェクト (PDO) へのポインター。

[in] PropertyKey

デバイス プロパティ キーを指定する DEVPROPKEY 構造体へのポインター。

[in] Lcid

ロケール識別子。 このパラメーターは、言語固有の LCID 値または LOCALE_NEUTRALに設定します。

LOCALE_NEUTRAL LCID は、プロパティが言語に依存しないことを指定します (つまり、どの言語にも固有ではありません)。

このパラメーターは 、LOCALE_SYSTEM_DEFAULT または LOCALE_USER_DEFAULTに設定しないでください。

言語固有の LCID 値の詳細については、「 LCID 構造体」を参照してください。

[in] Flags

このルーチンによって設定されたプロパティ値がコンピューターの再起動間で保持される場合は、このパラメーターを PLUGPLAY_PROPERTY_PERSISTENT に設定します。 それ以外の場合は、 Flags を 0 に設定します。

Windows 8およびWindows Server 2012以降のオペレーティング システムでは、フラグ常にPLUGPLAY_PROPERTY_PERSISTENTが渡されるかのように扱われます。

[in] Type

データ バッファーで提供されるデータの種類を指定する DEVPROPTYPE 値。

[in] Size

データが指すバッファーのサイズ (バイト単位)。

[in, optional] Data

デバイス プロパティ データへのポインター。 指定したプロパティを削除するには、このパラメーターを NULL に設定します。 DataNULL 以外の場合、ルーチンはプロパティ値の内部コピーを格納します。 Data が指すバッファーは、呼び出しが返された後も有効なままである必要はありません。

戻り値

IoSetDevicePropertyData は、呼び出しが成功した場合はSTATUS_SUCCESS、失敗した場合は適切な NTSTATUS コードを返します。

注釈

このルーチンで使用できるプロパティの種類を確認するには、 のDEVPROP_TYPE_BYTE ページと隣接するページを DEVPROP_TYPE_*参照してください。

カーネル モード ドライバーは 、IoSetDevicePropertyData ルーチンを使用して、統合デバイス プロパティ モデルの一部として定義されているデバイス プロパティを変更します。 デバイスのプロパティの詳細については、「 デバイスのプロパティ」を参照してください。

特定のロケールのプロパティを削除するには、 Lcid に言語固有の LCID 値を渡し、Data に NULL をします

すべてのロケールのプロパティを削除するには、Lcidで LOCALE_NEUTRALを渡し、Data で NULL をします

特定のロケールのプロパティを変更するには、 Lcid に言語固有の LCID 値を渡し、Data で NULL 以外を渡 します

すべてのロケールのプロパティを変更するには、Lcidで LOCALE_NEUTRALを渡し、Data で NULL 以外を渡します

Windows 8以降、Lcid でLOCALE_NEUTRALを渡すWindows Server 2012は、他のロケールと同様に扱われます。

ドライバーは、 IoGetDevicePropertyData ルーチンを使用して、デバイス プロパティの現在の値を取得できます。

IoSetDeviceProperty の呼び出し元は、システム スレッドのコンテキストで IRQL <= APC_LEVELで実行されている必要があります。

要件

要件
サポートされている最小のクライアント Windows Vista 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= APC_LEVEL
DDI コンプライアンス規則 HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

こちらもご覧ください

DEVPROPKEY

DEVPROPTYPE

IoGetDevicePropertyData