WDF_IO_QUEUE_CONFIG-Struktur (wdfio.h)
[Gilt für KMDF und UMDF]
Die WDF_IO_QUEUE_CONFIG-Struktur enthält Konfigurationsinformationen für ein Framework-Warteschlangenobjekt.
Syntax
typedef struct _WDF_IO_QUEUE_CONFIG {
ULONG Size;
WDF_IO_QUEUE_DISPATCH_TYPE DispatchType;
WDF_TRI_STATE PowerManaged;
BOOLEAN AllowZeroLengthRequests;
BOOLEAN DefaultQueue;
PFN_WDF_IO_QUEUE_IO_DEFAULT EvtIoDefault;
PFN_WDF_IO_QUEUE_IO_READ EvtIoRead;
PFN_WDF_IO_QUEUE_IO_WRITE EvtIoWrite;
PFN_WDF_IO_QUEUE_IO_DEVICE_CONTROL EvtIoDeviceControl;
PFN_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL EvtIoInternalDeviceControl;
PFN_WDF_IO_QUEUE_IO_STOP EvtIoStop;
PFN_WDF_IO_QUEUE_IO_RESUME EvtIoResume;
PFN_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE EvtIoCanceledOnQueue;
union {
struct {
ULONG NumberOfPresentedRequests;
} Parallel;
} Settings;
WDFDRIVER Driver;
} WDF_IO_QUEUE_CONFIG, *PWDF_IO_QUEUE_CONFIG;
Member
Size
Die Länge dieser Struktur in Bytes.
DispatchType
Ein WDF_IO_QUEUE_DISPATCH_TYPE Enumerator, der den Anforderungsverteilungstyp für die Warteschlange identifiziert.
PowerManaged
Ein WDF_TRI_STATE typisierter Wert, der bei Festlegung auf WdfTrue angibt, dass das Framework die Energieverwaltung der Warteschlange übernimmt.
Wenn WdfFalse festgelegt ist, muss der Treiber die Energieverwaltung der Warteschlange übernehmen.
Wenn WdfUseDefault festgelegt ist, übernimmt das Framework die Energieverwaltung für die Warteschlange, es sei denn, der Treiber ruft WdfFdoInitSetFilter auf.
Treiber über dem Energierichtlinienbesitzer im Treiberstapel dürfen das PowerManaged-Element nicht auf WdfTrue festlegen.
Weitere Informationen zu stromverwalteten E/A-Warteschlangen finden Sie unter Energieverwaltung für E/A-Warteschlangen.
AllowZeroLengthRequests
Ein boolescher Wert, der bei TRUE angibt, dass der Treiber Lese- oder Schreibanforderungen mit einer Pufferlänge von 0 von 0 empfängt, sodass das Framework diese Anforderungen an den Treiber übermittelt. Bei FALSE übermittelt das Framework diese Anforderungen nicht an den Treiber. stattdessen werden sie mit einer status von STATUS_SUCCESS abgeschlossen.
DefaultQueue
Ein boolescher Wert, der bei TRUE angibt, dass die Warteschlange die Standard-E/A-Warteschlange des Geräts ist. Bei FALSE ist die Warteschlange nicht die Standardwarteschlange des Geräts.
EvtIoDefault
Ein Zeiger auf die warteschlangenspezifische EvtIoDefault-Rückruffunktion des Treibers ( NULL).
EvtIoRead
Ein Zeiger auf die warteschlangenspezifische EvtIoRead-Rückruffunktion des Treibers ( NULL).
EvtIoWrite
Ein Zeiger auf die warteschlangenspezifische EvtIoWrite-Rückruffunktion des Treibers ( NULL).
EvtIoDeviceControl
Ein Zeiger auf die warteschlangenspezifische EvtIoDeviceControl-Rückruffunktion des Treibers ( NULL).
EvtIoInternalDeviceControl
Ein Zeiger auf die warteschlangenspezifische EvtIoInternalDeviceControl-Rückruffunktion des Treibers oder NULL.
EvtIoStop
Ein Zeiger auf die warteschlangenspezifische EvtIoStop-Rückruffunktion des Treibers ( NULL).
EvtIoResume
Ein Zeiger auf die warteschlangenspezifische EvtIoResume-Rückruffunktion des Treibers oder NULL.
EvtIoCanceledOnQueue
Ein Zeiger auf die warteschlangenspezifische EvtIoCanceledOnQueue-Rückruffunktion des Treibers ( NULL).
Settings
Settings.Parallel
Settings.Parallel.NumberOfPresentedRequests
Bei der parallelen Verteilmethode die maximale Anzahl von E/A-Anforderungen, die das Framework asynchron an die Anforderungshandler der E/A-Warteschlange übermittelt. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise". Für die sequenziellen und manuellen Verteilmethoden muss dieser Member 0 sein. Dieses Element ist in Version 1.9 und höher von KMDF verfügbar.
Driver
Nur zur internen Verwendung. Auf NULL festgelegt. Dieses Element ist in Version 1.11 und höher von KMDF verfügbar.
Hinweise
Der Treiber muss die WDF_IO_QUEUE_CONFIG-Struktur initialisieren, indem er WDF_IO_QUEUE_CONFIG_INIT oder WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE aufruft.
Die WDF_IO_QUEUE_CONFIG-Struktur wird als Eingabeparameter für WdfIoQueueCreate verwendet.
Ab Version 1.9 von KMDF können Treiber den NumberOfPresentedRequests-Member verwenden, um die maximale Anzahl von E/A-Anforderungen anzugeben, die das Framework asynchron an die Anforderungshandler einer parallelen E/A-Warteschlange übermittelt. Nachdem das Framework die angegebene Anzahl von E/A-Anforderungen an den Treiber übermittelt hat, werden keine weiteren Anforderungen aus der Warteschlange übermittelt, bis der Treiber mindestens eine der Anforderungen abgeschlossen, abgebrochen oder erneut aus der Warteschlange ausgibt.
Für parallele Warteschlangen legen WDF_IO_QUEUE_CONFIG_INIT und WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE den NumberOfPresentedRequests-Member auf seinen Standardwert (-1) fest, was angibt, dass das Framework eine unbegrenzte Anzahl von E/A-Anforderungen an den Treiber übermitteln kann.
Anforderungen
Anforderung | Wert |
---|---|
KMDF-Mindestversion | 1.0 |
UMDF-Mindestversion | 2.0 |
Kopfzeile | wdfio.h (einschließen von Wdf.h) |