次の方法で共有


WdfFileObjectGetFileName 関数 (wdffileobject.h)

[KMDF と UMDF に適用]

WdfFileObjectGetFileName メソッドは、指定したフレームワーク ファイル オブジェクトに含まれるファイル名を返します。

構文

PUNICODE_STRING WdfFileObjectGetFileName(
  [in] WDFFILEOBJECT FileObject
);

パラメーター

[in] FileObject

フレームワーク ファイル オブジェクトへのハンドル。

戻り値

WdfFileObjectGetFileName は、ファイル名を含む UNICODE_STRING 構造体へのポインターを返します。 メソッドは、指定したフレームワーク ファイル オブジェクトの WDM ファイル オブジェクトがない場合、または IRQL で呼び出された場合は、PASSIVE_LEVELより高い NULL を 返します。

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

注釈

ドライバーが WdfDeviceCreateDeviceInterface を呼び出したときに参照文字列を指定した場合、 WdfFileObjectGetFileName は、バックスラッシュで付加された参照文字列を返します。 参照文字列を確認するには、円記号を削除します。

返される文字列には、ファイル名または参照文字列を含めることができます。 文字列にデバイス名が含まれていません。 参照文字列のないファイルではなく、アプリケーションまたはカーネル モード コンポーネントがデバイスを開いた場合、返されるUNICODE_STRING構造体の Length メンバーは 0 になります。

ドライバーは、ファイル作成要求の処理中にのみ WdfFileObjectGetFileName を呼び出す必要があります (WdfRequestTypeCreate 要求の種類)。 ドライバーは、EvtDeviceFileCreate コールバック関数で WdfRequestTypeCreate 型の I/O 要求を処理する場合があります。

または、 EvtDeviceFileCreate コールバック関数を提供する代わりに、ドライバーは WdfDeviceConfigureRequestDispatching を呼び出して、すべてのファイル作成要求 (WdfRequestTypeCreate 要求の種類) を受信する I/O キューを設定できます。 ドライバーは、その後、キューの EvtIoDefault 要求ハンドラーでファイル作成要求を受け取ります。

フレームワーク ファイル オブジェクトの詳細については、「 フレームワーク ファイル オブジェクト」を参照してください。

ファイル名の詳細については、「 デバイス名前空間アクセスの制御」を参照してください。

参照文字列の詳細については、「 IoRegisterDeviceInterface」を参照してください。

次のコード例は、 EvtDeviceFileCreate コールバック関数が、アプリケーションが開いたファイルの名前を取得する方法を示しています。

VOID
MyEvtDeviceFileCreate (
    IN WDFDEVICE  Device,
    IN WDFREQUEST  Request,
    IN WDFFILEOBJECT  FileObject
    )
{
    PUNICODE_STRING  fileName;

    fileName = WdfFileObjectGetFileName(FileObject);
...

}

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
最小 UMDF バージョン 2.0
Header wdffileobject.h (Wdf.h を含む)
Library Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

こちらもご覧ください

UNICODE_STRING

WdfDeviceCreateDeviceInterface