次の方法で共有


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 を返します。

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

注釈

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

次のコード例では、オブジェクトへの要求されたアクセスを許可できる場合は、名前付き 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
Header wdfdevice.h (Wdf.h を含む)
Library Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)

こちらもご覧ください

IoGetDeviceObjectPointer