次の方法で共有


WdfDeviceGetFileObject 関数 (wdfdevice.h)

[KMDF にのみ適用]

WdfDeviceGetFileObject メソッドは、指定した WDM ファイル オブジェクトに関連付けられているフレームワーク ファイル オブジェクトへのハンドルを返します。

構文

WDFFILEOBJECT WdfDeviceGetFileObject(
  [in] WDFDEVICE    Device,
  [in] PFILE_OBJECT FileObject
);

パラメーター

[in] Device

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

[in] FileObject

WDM FILE_OBJECT 構造体へのポインター。

戻り値

WdfDeviceGetFileObject は、指定した WDM ファイル オブジェクトに関連付けられているフレームワーク ファイル オブジェクトへのハンドルを返します。 ファイルに対してフレームワーク ファイル オブジェクトが作成されていない場合、または FileObject ポインターが無効な場合、メソッドは NULL 返します。

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

備考

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

次のコード例では、オブジェクトへの要求されたアクセスを許可できる場合は、名前付き WDM デバイス オブジェクトとそれに対応する WDM ファイル オブジェクトへのポインターを取得します。 次に、WDM ファイル オブジェクトに関連付けられているフレームワーク ファイル オブジェクトへのハンドルを取得します。

PFILE_OBJECT  pWdmFileObject = NULL;
PDEVICE_OBJECT  pWdmDeviceObject = NULL;
WDFFILEOBJECT  fileObject = NULL;
NTSTATUS  status = STATUS_SUCCESS;
BOOLEAN  success = TRUE;

status = IoGetDeviceObjectPointer(
                                  &inputFileName,    // File name 
                                  FILE_ALL_ACCESS,   // Access mask
                                  &pWdmFileObject,   // Output pointer of WDM file object
                                  &pWdmDeviceObject  // Output pointer of WDM device object
                                  );

if(!NT_SUCCESS(status)){
    success = FALSE;
    break;
}

fileObject = WdfDeviceGetFileObject(
                                    gDeviceObject,  // Handle to device object
                                    pWdmFileObject  // Handle to WDM file object
                                    );
if(fileObject == NULL){
    success = FALSE;
}

必要条件

要件 価値
ターゲット プラットフォーム 万国
最小 KMDF バージョン 1.0
ヘッダー wdfdevice.h (Wdf.h を含む)
ライブラリ Wdf01000.sys (フレームワーク ライブラリのバージョン管理を参照)。
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 する DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

関連項目

IoGetDeviceObjectPointer