WdfStringCreate 関数 (wdfstring.h)
[KMDF と UMDF に適用]
WdfStringCreate メソッドは、フレームワーク文字列オブジェクトを作成し、必要に応じて、指定した Unicode 文字列を オブジェクトに割り当てます。
構文
NTSTATUS WdfStringCreate(
[in, optional] PCUNICODE_STRING UnicodeString,
[in, optional] PWDF_OBJECT_ATTRIBUTES StringAttributes,
[out] WDFSTRING *String
);
パラメーター
[in, optional] UnicodeString
Unicode 文字列定数を含む UNICODE_STRING 構造体へのポインター。 フレームワークは、新しいフレームワーク文字列オブジェクトに文字列をコピーします。 このポインターは省略可能であり、 NULL にすることができます。
[in, optional] StringAttributes
新しい文字列オブジェクトのドライバー指定の属性を含む WDF_OBJECT_ATTRIBUTES 構造体へのポインター。 このパラメーターは省略可能であり、WDF_NO_OBJECT_ATTRIBUTESできます。
[out] String
新しい文字列オブジェクトへのハンドルを受け取る場所へのポインター。
戻り値
操作が成功した場合、WdfStringCreate はSTATUS_SUCCESSを返します。 それ以外の場合、メソッドは次のいずれかの値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
IRQL = PASSIVE_LEVELで WdfStringCreate が呼び出されませんでした。 |
|
無効なパラメーターが指定されました。 |
|
文字列オブジェクトを割り当てませんでした。 |
WdfStringCreate メソッドが返す可能性があるその他の戻り値の一覧については、「Framework オブジェクト作成エラー」を参照してください。
このメソッドは、他の NTSTATUS 値を返す場合もあります。
注釈
フレームワーク文字列オブジェクトの既定の親は、ドライバーのフレームワーク ドライバー オブジェクトです。 ただし、文字列がドライバーに関連付けられていない限り、ドライバーは、文字列のスコープを表すオブジェクトにWDF_OBJECT_ATTRIBUTES構造体の ParentObject メンバーを設定する必要があります。 通常、文字列はデバイス固有であり、その親オブジェクトはフレームワーク デバイス オブジェクトである必要があります。
ドライバーがフレームワーク文字列オブジェクト の EvtCleanupCallback または EvtDestroyCallback コールバック関数を提供する場合、フレームワークは IRQL = PASSIVE_LEVEL でこれらのコールバック関数を呼び出します。
フレームワーク文字列オブジェクトの詳細については、「文字列オブジェクトの 使用」を参照してください。
例
次のコード例では、 WDF_OBJECT_ATTRIBUTES 構造体を初期化し、フレームワーク文字列オブジェクトを作成します。
NTSTATUS status;
WDFSTRING stringHandle = NULL;
WDF_OBJECT_ATTRIBUTES attributes;
WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = pDeviceContext->Device;
status = WdfStringCreate(
NULL,
&attributes,
&stringHandle
);
if (!NT_SUCCESS(status)){
return status;
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfstring.h (Wdf.h を含む) |
Library | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | DriverCreate(kmdf)、 KmdfIrql(kmdf)、 KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf) |