Freigeben über


WUDF_INTERRUPT_CONFIG-Struktur (wudfinterrupt.h)

[Warnung: UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mit UMDF 2 geschrieben werden. UMDF 1 werden keine neuen Features hinzugefügt, und die Unterstützung für UMDF 1 in neueren Versionen von Windows 10 ist eingeschränkt. Universelle Windows-Treiber müssen UMDF 2 verwenden. Weitere Informationen finden Sie unter Erste Schritte mit UMDF.]

Die WUDF_INTERRUPT_CONFIG-Struktur enthält Konfigurationsinformationen für einen Geräteunterbrechung.

Syntax

typedef struct _WUDF_INTERRUPT_CONFIG {
  ULONG                           Size;
  WDF_TRI_STATE                   ShareVector;
  BOOLEAN                         AutomaticSerialization;
  PFN_WUDF_INTERRUPT_ISR          OnInterruptIsr;
  PFN_WUDF_INTERRUPT_ENABLE       OnInterruptEnable;
  PFN_WUDF_INTERRUPT_DISABLE      OnInterruptDisable;
  PFN_WUDF_INTERRUPT_WORKITEM     OnInterruptWorkItem;
  PCM_PARTIAL_RESOURCE_DESCRIPTOR InterruptRaw;
  PCM_PARTIAL_RESOURCE_DESCRIPTOR InterruptTranslated;
} WUDF_INTERRUPT_CONFIG, *PWUDF_INTERRUPT_CONFIG;

Member

Size

Die Größe (in Bytes) dieser Struktur.

ShareVector

Ein WDF_TRI_STATE typisierter Wert. Wenn dieser Wert WdfTrue ist, kann der Interruptvektor freigegeben werden. Wenn der Wert WdfFalse ist, kann der Interruptvektor nicht freigegeben werden. Wenn der Wert WdfDefault ist und der Interrupt level-triggered wird, verwendet der Plug & Play-Manager den Wert des Bustreibers. Wenn der Wert WdfDefault ist und der Interrupt nicht level-triggered wird, kann der Interruptvektor nicht freigegeben werden.

AutomaticSerialization

Ein boolescher Wert, der bei TRUE angibt, dass das Framework die Ausführung der OnInterruptWorkItem-Rückruffunktion des Interruptobjekts mit anderen Rückruffunktionen synchronisiert, die die Rückrufsynchronisierungsfunktion des Frameworks verwenden. Weitere Informationen finden Sie unter Hinweise.

OnInterruptIsr

Ein Zeiger auf die OnInterruptIsr-Rückruffunktion des Treibers oder NULL.

OnInterruptEnable

Ein Zeiger auf die OnInterruptEnable-Rückruffunktion des Treibers oder NULL.

OnInterruptDisable

Ein Zeiger auf die OnInterruptDisable-Rückruffunktion des Treibers oder NULL.

OnInterruptWorkItem

Ein Zeiger auf die OnInterruptWorkItem-Rückruffunktion des Treibers oder NULL.

InterruptRaw

Ein Zeiger auf die CM_PARTIAL_RESOURCE_DESCRIPTOR Struktur, die die Rohressourcen beschreibt, die das System dem Interrupt zugewiesen hat. Dieser Member wird nur verwendet, wenn der Interrupt im OnPrepareHardware-Rückruf erstellt wird.

InterruptTranslated

Ein Zeiger auf die CM_PARTIAL_RESOURCE_DESCRIPTOR-Struktur , die die übersetzten Ressourcen beschreibt, die das System dem Interrupt zugewiesen hat. Dieser Member wird nur verwendet, wenn der Interrupt im OnPrepareHardware-Rückruf erstellt wird.

Hinweise

Die WUDF_INTERRUPT_CONFIG-Struktur wird als Eingabe für IWDFDevice3::CreateInterrupt verwendet.

Um eine WUDF_INTERRUPT_CONFIG-Struktur zu initialisieren, sollte Ihr Treiber zuerst WUDF_INTERRUPT_CONFIG_INIT aufrufen und dann Strukturmember ausfüllen, die WUDF_INTERRUPT_CONFIG_INIT nicht initialisiert.

Bevor AutomaticSerialization auf TRUE festgelegt wird, muss der Treiber IWDFDeviceInitialize::SetLockingConstraint aufrufen, wobei der LockType-Parameter auf WdfDeviceLevel festgelegt ist.

Ihr Treiber sollte "Wudfwdm.h" enthalten, das die Definition von CM_PARTIAL_RESOURCE_DESCRIPTOR enthält.

UMDF unterstützt edge-ausgelöste, zeilenbasierte Interrupts und Nachrichtensignal-Interrupts (Message-Signaled Interrupts, MSI) auf allen Framework-unterstützten Betriebssystemen. Da diese Typen von Interruptressourcen nicht freigegeben werden, sollte ein Treiber, der sie verwendet, den ShareVector-Member dieser Struktur auf WdfFalse oder WdfUseDefault festlegen. Wenn der Treiber einen ungültigen ShareVector-Wert angibt, kann der Treiber nicht gestartet werden.

Anforderungen

Anforderung Wert
UMDF-Mindestversion 1.11
Kopfzeile wudfinterrupt.h

Weitere Informationen

IWDFDevice3::CreateInterrupt

IWDFDeviceInitialize::SetLockingConstraint

WUDF_INTERRUPT_CONFIG_INIT