WDF_IO_TARGET_OPEN_PARAMS構造体 (wdfiotarget.h)

[KMDF と UMDF に適用]

WDF_IO_TARGET_OPEN_PARAMS構造体には、WdfIoTargetOpen メソッドが使用するパラメーターが含まれています。

構文

typedef struct _WDF_IO_TARGET_OPEN_PARAMS {
  ULONG                             Size;
  WDF_IO_TARGET_OPEN_TYPE           Type;
  PFN_WDF_IO_TARGET_QUERY_REMOVE    EvtIoTargetQueryRemove;
  PFN_WDF_IO_TARGET_REMOVE_CANCELED EvtIoTargetRemoveCanceled;
  PFN_WDF_IO_TARGET_REMOVE_COMPLETE EvtIoTargetRemoveComplete;
  PDEVICE_OBJECT                    TargetDeviceObject;
  PFILE_OBJECT                      TargetFileObject;
  UNICODE_STRING                    TargetDeviceName;
  ACCESS_MASK                       DesiredAccess;
  ULONG                             ShareAccess;
  ULONG                             FileAttributes;
  ULONG                             CreateDisposition;
  ULONG                             CreateOptions;
  PVOID                             EaBuffer;
  ULONG                             EaBufferLength;
  PLONGLONG                         AllocationSize;
  ULONG                             FileInformation;
  UNICODE_STRING                    FileName;
} WDF_IO_TARGET_OPEN_PARAMS, *PWDF_IO_TARGET_OPEN_PARAMS;

メンバー

Size

この構造体のサイズ (バイト単位)。

Type

WDF_IO_TARGET_OPEN_TYPE型指定された値。これは、WdfIoTargetOpen が実行する開いている操作の種類を示します。

EvtIoTargetQueryRemove

ドライバーの EvtIoTargetQueryRemove イベント コールバック関数へのポインター、または NULL

EvtIoTargetRemoveCanceled

ドライバーの EvtIoTargetRemoveCanceled イベント コールバック関数 ( NULL) へのポインター。

EvtIoTargetRemoveComplete

ドライバーの EvtIoTargetRemoveComplete イベント コールバック関数 ( NULL) へのポインター。

TargetDeviceObject

このメンバーは、UMDF ドライバーには適用されません。

Kmdf Type の値が WdfIoTargetOpenUseExistingDevice の場合、これは I/O ターゲットのデバイスを表すDEVICE_OBJECT構造体へのポインターです。 Type の値が WdfIoTargetOpenUseExistingDevice でない場合、このメンバーは無視されます。

TargetFileObject

このメンバーは、UMDF ドライバーには適用されません。

Kmdf Type の値が WdfIoTargetOpenUseExistingDevice の場合、これはFILE_OBJECT構造体へのポインターです。 この構造体は、ドライバーが I/O ターゲットに送信するすべての I/O 要求に含まれています ( WdfRequestGetFileObject を参照)。 このメンバーは省略可能であり、 NULL にすることができます。 Type の値が WdfIoTargetOpenUseExistingDevice でない場合、このメンバーは無視されます。

TargetDeviceName

Type の値が WdfIoTargetOpenByName の場合、これは、デバイス、ファイル、またはデバイス インターフェイスの名前を含むUNICODE_STRING構造体です。 この名前の形式については、「 オブジェクト名」を参照してください。

Type の値が WdfIoTargetOpenByName でない場合、このメンバーは無視されます。

DesiredAccess

Type の値が WdfIoTargetOpenByName の場合、これはACCESS_MASK値です。

Type の値が WdfIoTargetOpenByName でない場合、このメンバーは無視されます。

Kmdf 使用できる値には、FILE_Xxxx_ACCESS値 (FILE_ANY_ACCESS、FILE_SPECIAL_ACCESS、FILE_READ_ACCESS、FILE_WRITE_ACCESS、GENERIC_READ、GENERIC_WRITE、GENERIC_ALLなど) があります。

Umdf 最も一般的に使用される値は、GENERIC_READ、GENERIC_WRITE、またはその両方 (GENERIC_READ |GENERIC_WRITE)。 ACCESS_MASKは DWORD 値であることに注意してください。 このメンバーの詳細については、Windows SDK の CreateFiledwDesiredAccess パラメーターを参照してください。

ShareAccess

Type の値が WdfIoTargetOpenByName でない場合、このメンバーは無視されます。

Kmdf Type の値が WdfIoTargetOpenByName の場合、これは次のフラグ (Wdm.h で定義されている) のビットごとの OR または 0 です。

ShareAccess フラグ 意味
FILE_SHARE_READ ドライバーは、デバイスへの排他的な読み取りアクセスを必要としません。
FILE_SHARE_WRITE ドライバーは、デバイスへの排他的な書き込みアクセスを必要としません。
FILE_SHARE_DELETE ドライバーは、デバイスへの排他的な削除アクセスを必要としません。
 

Umdf このメンバーの詳細については、Windows SDK の CreateFile 関数の dwShareMode パラメーターを参照してください。

ShareAccess の 0 の値は、ドライバーがデバイスへの排他的アクセスを必要とすることを示します。

FileAttributes

Kmdf Type の値が WdfIoTargetOpenByName の場合、これは Wdm.h で定義されているFILE_ATTRIBUTE_Xxxx フラグのビットごとの OR です。 ほとんどのドライバーは、FILE_ATTRIBUTE_NORMALを指定します。 これらのフラグの詳細については、「 ZwCreateFile」を参照してください。

Umdf このメンバーの詳細については、Windows SDK の CreateFile 関数の dwFlagsAndAttributes パラメーターを参照してください。

Type の値が WdfIoTargetOpenByName でない場合、このメンバーは無視されます。

CreateDisposition

Kmdf Type の値が WdfIoTargetOpenByName の場合、この値はファイルを開くときにシステムが実行するアクションを示します。 使用可能な値の一覧については、「 ZwCreateFile」を参照してください。

Umdf このメンバーの詳細については、Windows SDK の CreateFile 関数の dwCreationDisposition パラメーターを参照してください。

Type の値が WdfIoTargetOpenByName でない場合、このメンバーは無視されます。

CreateOptions

このメンバーは、UMDF ドライバーには適用されません。

Kmdf Type の値が WdfIoTargetOpenByName の場合、これはファイル オプション フラグのビットごとの OR です。 使用可能なフラグの一覧については、「 ZwCreateFile」を参照してください。 Type の値が WdfIoTargetOpenByName でない場合、このメンバーは無視されます。

EaBuffer

このメンバーは、UMDF ドライバーには適用されません。

Kmdf Type の値が WdfIoTargetOpenByName の場合、このメンバーは拡張属性バッファーを指します。 通常、ドライバーはこの値に NULL を 指定します。 Type の値が WdfIoTargetOpenByName でない場合、このメンバーは無視されます。

EaBufferLength

このメンバーは、UMDF ドライバーには適用されません。

Kmdf Type の値が WdfIoTargetOpenByName の場合、これは拡張属性バッファーの長さになります。 通常、ドライバーは、この値に 0 を指定します。 Type の値が WdfIoTargetOpenByName でない場合、このメンバーは無視されます。

AllocationSize

このメンバーは、UMDF ドライバーには適用されません。

Kmdf Type の値が WdfIoTargetOpenByName の場合、このメンバーは、新しいファイルを作成する場合に、システムが最初にファイルに割り当てるサイズをバイト単位で指定します。 この値は省略可能であり、0 にすることができます。 Type の値が WdfIoTargetOpenByName でない場合、このメンバーは無視されます。

FileInformation

このメンバーは、UMDF ドライバーには適用されません。

Kmdf Type の値が WdfIoTargetOpenByName の場合、このメンバーは WdfIoTargetOpen の呼び出しが返されたときに状態情報を受け取ります。 情報は、FILE_CREATED、FILE_OPENED、FILE_OVERWRITTEN、FILE_SUPERSEDED、FILE_EXISTS、またはFILE_DOES_NOT_EXISTのいずれかの値です。 Type の値が WdfIoTargetOpenByName でない場合、このメンバーは無視されます。

FileName

このメンバーは KMDF ドライバーには適用されません。

Umdf ファイル オブジェクトの作成元となるファイルの名前を含むUNICODE_STRING構造体。 このメンバーは省略可能であり、 Type の値が WdfIoTargetOpenLocalTargetByFile の場合にのみ適用されます。 低いターゲットがデバイス名前空間アクセスをサポートしていない限り、ほとんどのドライバーはここで NULL を指定します。 指定した場合、文字列にはパス区切り文字 (スラッシュまたは円記号) を含めないようにしてください。

注釈

ドライバーは、次のいずれかの関数を呼び出して 、WDF_IO_TARGET_OPEN_PARAMS 構造体を初期化する必要があります。

  • WDF_IO_TARGET_OPEN_PARAMS_INIT_EXISTING_DEVICE、ドライバーがターゲット デバイスを識別できる場合は、 DEVICE_OBJECT 構造体へのポインターを指定します。

  • WDF_IO_TARGET_OPEN_PARAMS_INIT_CREATE_BY_NAME、I/O ターゲットがデバイス、ファイル、またはデバイス インターフェイスの場合、およびドライバーがデバイス、ファイル、またはデバイス インターフェイスの名前を指定できるかどうかを示します。 既に存在するファイルの名前を指定すると、システムは既存のファイルを置き換えます。 ファイルが存在しない場合は、システムによって作成されます。

  • WDF_IO_TARGET_OPEN_PARAMS_INIT_OPEN_BY_NAME、I/O ターゲットがデバイス、ファイル、またはデバイス インターフェイスである場合、およびドライバーがデバイス、ファイル、またはデバイス インターフェイスの名前を指定できるかどうかを示します。 既に存在するファイルの名前を指定すると、システムは既存のファイルを開きます。 ファイルが存在しない場合、開いている操作は失敗します。

  • WDF_IO_TARGET_OPEN_PARAMS_INIT_REOPEN、ドライバーの EvtIoTargetRemoveCanceled コールバック関数が、デバイスが削除されていないためにリモート I/O ターゲットを再度開いている場合です。

  • WDF_IO_TARGET_OPEN_PARAMS_INIT_OPEN_BY_FILE、UMDF ドライバーがドライバーによって作成された要求を、関連付けられたファイル オブジェクトを必要とする下位ターゲットに送信する必要がある場合です。

要件

要件
最小 KMDF バージョン 1.0
最小 UMDF バージョン 2.0
Header wdfiotarget.h (Wdf.h を含む)

こちらもご覧ください

ACCESS_MASK

DEVICE_OBJECT

EvtIoTargetQueryRemove

EvtIoTargetRemoveCanceled

FILE_OBJECT

UNICODE_STRING

WDF_IO_TARGET_OPEN_TYPE

WdfIoTargetOpen

WdfRequestGetFileObject

ZwCreateFile