Freigeben über


WDF_IO_TARGET_OPEN_PARAMS Struktur (wdfiotarget.h)

[Gilt für KMDF und UMDF]

Die WDF_IO_TARGET_OPEN_PARAMS-Struktur enthält Parameter, die von der WdfIoTargetOpen-Methode verwendet werden.

Syntax

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;

Elemente

Size

Die Größe dieser Struktur in Byte.

Type

Ein WDF_IO_TARGET_OPEN_TYPE-typed-Wert, der den Typ des geöffneten Vorgangs angibt, der WdfIoTargetOpen ausgeführt wird.

EvtIoTargetQueryRemove

Ein Zeiger auf die EvtIoTargetQueryRemove Ereignisrückruffunktion oder NULL-.

EvtIoTargetRemoveCanceled

Ein Zeiger auf die EvtIoTargetRemoveCanceled Ereignisrückruffunktion oder NULL-.

EvtIoTargetRemoveComplete

Ein Zeiger auf die EvtIoTargetRemoveComplete Ereignisrückruffunktion des Treibers oder NULL-.

TargetDeviceObject

Dieses Mitglied gilt nicht für UMDF-Treiber.

KMDF- Wenn der Wert TypeWdfIoTargetOpenUseExistingDeviceist, ist dies ein Zeiger auf eine DEVICE_OBJECT Struktur, die das Gerät des E/A-Ziels darstellt. Wenn der Wert von Type nicht WdfIoTargetOpenUseExistingDeviceist, wird dieses Element ignoriert.

TargetFileObject

Dieses Mitglied gilt nicht für UMDF-Treiber.

KMDF-Wenn der Wert TypeWdfIoTargetOpenUseExistingDeviceist, ist dies ein Zeiger auf eine FILE_OBJECT Struktur. Diese Struktur ist in allen E/A-Anforderungen enthalten, die der Treiber an das E/A-Ziel sendet (siehe WdfRequestGetFileObject). Dieses Element ist optional und kann NULL-sein. Wenn der Wert von Type nicht WdfIoTargetOpenUseExistingDeviceist, wird dieses Element ignoriert.

TargetDeviceName

Wenn der Wert von TypeWdfIoTargetOpenByNameist, ist dies eine UNICODE_STRING Struktur, die den Namen eines Geräts, einer Datei oder einer Geräteschnittstelle enthält. Informationen zum Format dieses Namens finden Sie unter Objektnamen.

Wenn der Wert von Type nicht WdfIoTargetOpenByNameist, wird dieses Element ignoriert.

DesiredAccess

Wenn der Wert von TypeWdfIoTargetOpenByNameist, ist dies ein ACCESS_MASK Wert.

Wenn der Wert von Type nicht WdfIoTargetOpenByNameist, wird dieses Element ignoriert.

KMDF-Mögliche Werte umfassen FILE_Xxxx-_ACCESS Werte wie FILE_ANY_ACCESS, FILE_SPECIAL_ACCESS, FILE_READ_ACCESS oder FILE_WRITE_ACCESS sowie GENERIC_READ, GENERIC_WRITE und GENERIC_ALL.

UMDF-Die am häufigsten verwendeten Werte sind GENERIC_READ, GENERIC_WRITE oder beides (GENERIC_READ | GENERIC_WRITE). Beachten Sie, dass ACCESS_MASK ein DWORD-Wert ist. Weitere Informationen zu diesem Member finden Sie im dwDesiredAccess Parameter von CreateFile im Windows SDK.

ShareAccess

Wenn der Wert von Type nicht WdfIoTargetOpenByNameist, wird dieses Element ignoriert.

KMDF-Wenn der Wert von TypeWdfIoTargetOpenByNameist, ist dies ein bitweiser OR der folgenden Flags (die in Wdm.hdefiniert sind) oder Null.

ShareAccess-Kennzeichnung Bedeutung
FILE_SHARE_READ Der Treiber erfordert keinen exklusiven Lesezugriff auf das Gerät.
FILE_SHARE_WRITE Der Treiber erfordert keinen exklusiven Schreibzugriff auf das Gerät.
FILE_SHARE_DELETE Der Treiber erfordert keinen exklusiven Löschzugriff auf das Gerät.
 

UMDF-Weitere Informationen zu diesem Member finden Sie im dwShareMode--Parameter der Funktion CreateFile im Windows SDK.

Ein Wert von Null in ShareAccess gibt an, dass der Treiber exklusiven Zugriff auf das Gerät erfordert.

FileAttributes

KMDF-Wenn der Wert von TypeWdfIoTargetOpenByNameist, ist dies ein bitweiser OR der FILE_ATTRIBUTE_Xxxx Flags, die in Wdm.hdefiniert sind. Die meisten Treiber geben FILE_ATTRIBUTE_NORMAL an. Weitere Informationen zu diesen Flags finden Sie unter ZwCreateFile.

UMDF-Weitere Informationen zu diesem Member finden Sie im dwFlagsAndAttributes Parameter der Funktion CreateFile im Windows SDK.

Wenn der Wert von Type nicht WdfIoTargetOpenByNameist, wird dieses Element ignoriert.

CreateDisposition

KMDF-Wenn der Wert Typ-WdfIoTargetOpenByNameist, gibt dieser Wert eine Aktion an, die das System beim Öffnen einer Datei ausführen soll. Eine Liste der möglichen Werte finden Sie unter ZwCreateFile.

UMDF-Weitere Informationen zu diesem Member finden Sie im dwCreationDisposition Parameter der Funktion CreateFile im Windows SDK.

Wenn der Wert von Type nicht WdfIoTargetOpenByNameist, wird dieses Element ignoriert.

CreateOptions

Dieses Mitglied gilt nicht für UMDF-Treiber.

KMDF-Wenn der Wert TypeWdfIoTargetOpenByNameist, ist dies ein bitweises ODER von Dateioptionskennzeichnungen. Eine Liste der möglichen Flags finden Sie unter ZwCreateFile. Wenn der Wert von Type nicht WdfIoTargetOpenByNameist, wird dieses Element ignoriert.

EaBuffer

Dieses Mitglied gilt nicht für UMDF-Treiber.

KMDF-Wenn der Wert TypeWdfIoTargetOpenByNameist, verweist dieses Element auf einen erweiterten Attributpuffer. In der Regel geben Treiber NULL- für diesen Wert an. Wenn der Wert von Type nicht WdfIoTargetOpenByNameist, wird dieses Element ignoriert.

EaBufferLength

Dieses Mitglied gilt nicht für UMDF-Treiber.

KMDF-Wenn der Wert TypeWdfIoTargetOpenByNameist, ist dies die Länge des Puffers für erweiterte Attribute. In der Regel geben Treiber null für diesen Wert an. Wenn der Wert von Type nicht WdfIoTargetOpenByNameist, wird dieses Element ignoriert.

AllocationSize

Dieses Mitglied gilt nicht für UMDF-Treiber.

KMDF-Wenn der Wert TypeWdfIoTargetOpenByNameist, gibt dieses Element die Größe in Byte an, die das System zunächst für die Datei zuweisen soll, wenn eine neue Datei erstellt wird. Dieser Wert ist optional und kann null sein. Wenn der Wert von Type nicht WdfIoTargetOpenByNameist, wird dieses Element ignoriert.

FileInformation

Dieses Mitglied gilt nicht für UMDF-Treiber.

KMDF-Wenn der Wert TypeWdfIoTargetOpenByNameist, empfängt dieses Element Statusinformationen, wenn der Aufruf von WdfIoTargetOpen zurückgegeben wird. Die Informationen sind einer der folgenden Werte: FILE_CREATED, FILE_OPENED, FILE_OVERWRITTEN, FILE_SUPERSEDED, FILE_EXISTS oder FILE_DOES_NOT_EXIST. Wenn der Wert von Type nicht WdfIoTargetOpenByNameist, wird dieses Element ignoriert.

FileName

Dieses Mitglied gilt nicht für KMDF-Treiber.

UMDF Eine UNICODE_STRING Struktur, die den Namen der Datei enthält, aus der ein Dateiobjekt erstellt werden soll. Dieses Element ist optional und gilt nur, wenn der Wert von TypeWdfIoTargetOpenLocalTargetByFileist. Die meisten Treiber geben NULL- hier an, es sei denn, das untere Ziel unterstützt Device Namespace Access. Wenn angegeben, darf die Zeichenfolge keine Pfadtrennzeichen (Schrägstrich oder umgekehrter Schrägstrich) enthalten.

Bemerkungen

Treiber sollten die WDF_IO_TARGET_OPEN_PARAMS Struktur initialisieren, indem eine der folgenden Funktionen aufgerufen wird:

  • WDF_IO_TARGET_OPEN_PARAMS_INIT_EXISTING_DEVICE, wenn Ihr Treiber ein Zielgerät identifizieren kann, indem ein Zeiger auf eine DEVICE_OBJECT Struktur bereitgestellt wird.

  • WDF_IO_TARGET_OPEN_PARAMS_INIT_CREATE_BY_NAME, wenn das E/A-Ziel ein Gerät, eine Datei oder eine Geräteschnittstelle ist und ihr Treiber den Namen des Geräts, der Datei oder der Geräteschnittstelle angeben kann. Wenn Sie den Namen einer datei angeben, die bereits vorhanden ist, ersetzt das System die vorhandene Datei. Wenn die Datei nicht vorhanden ist, erstellt das System sie.

  • WDF_IO_TARGET_OPEN_PARAMS_INIT_OPEN_BY_NAME, wenn das E/A-Ziel ein Gerät, eine Datei oder eine Geräteschnittstelle ist und ihr Treiber den Namen des Geräts, der Datei oder der Geräteschnittstelle angeben kann. Wenn Sie den Namen einer datei angeben, die bereits vorhanden ist, öffnet das System die vorhandene Datei. Wenn die Datei nicht vorhanden ist, schlägt der Öffnenvorgang fehl.

  • WDF_IO_TARGET_OPEN_PARAMS_INIT_REOPEN, wenn die EvtIoTargetRemoveCanceled Rückruffunktion ein Remote-E/A-Ziel erneut öffnet, da das Gerät nicht entfernt wurde.

  • WDF_IO_TARGET_OPEN_PARAMS_INIT_OPEN_BY_FILE, wenn Ihr UMDF-Treiber anforderungen von Treibern an niedrigere Ziele senden muss, für die ein zugeordnetes Dateiobjekt erforderlich ist.

Anforderungen

Anforderung Wert
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Kopfzeile wdfiotarget.h (include Wdf.h)

Siehe auch

ACCESS_MASK

DEVICE_OBJECT

EvtIoTargetQueryRemove

EvtIoTargetRemoveCanceled

FILE_OBJECT

UNICODE_STRING

WDF_IO_TARGET_OPEN_TYPE

WdfIoTargetOpen

WdfRequestGetFileObject-

ZwCreateFile-