Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[Gilt nur für KMDF]
Die WdfDpcCreate-Methode erstellt ein DPC-Frameworkobjekt und registriert ein EvtDpcFunc Rückruffunktion.
Syntax
NTSTATUS WdfDpcCreate(
[in] PWDF_DPC_CONFIG Config,
[in] PWDF_OBJECT_ATTRIBUTES Attributes,
[out] WDFDPC *Dpc
);
Die Parameter
[in] Config
Ein Zeiger auf eine aufrufergeteilte WDF_DPC_CONFIG Struktur.
[in] Attributes
Ein Zeiger auf eine vom Aufrufer zugewiesene WDF_OBJECT_ATTRIBUTES Struktur, die Attribute für das neue DPC-Objekt angibt.
[out] Dpc
Ein Zeiger auf eine Position, die ein Handle für das neue Framework-DPC-Objekt empfängt.
Rückgabewert
WdfDpcCreate gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt die Methode möglicherweise einen der folgenden Werte zurück:
| Rückgabecode | BESCHREIBUNG |
|---|---|
|
Es wurde ein ungültiger Parameter angegeben. |
|
Ein DPC-Objekt konnte nicht zugeordnet werden. |
|
Ein übergeordnetes Objekt wurde in der WDF_OBJECT_ATTRIBUTES-Struktur nicht angegeben. |
|
Das ParentObject Member der WDF_OBJECT_ATTRIBUTES-Struktur verweist nicht auf ein Framework-Geräteobjekt oder auf ein Objekt, dessen Übergeordnete Kette zu einem Framework-Geräteobjekt führt. |
|
Die AutomaticSerialization Member der WDF_DPC_CONFIG-Struktur ist auf TRUEfestgelegt, die Ausführungsebene des übergeordneten Objekts wird jedoch auf WdfExecutionLevelPassivefestgelegt. |
Eine Liste mit anderen Rückgabewerten, die von der WdfDpcCreate-Methode möglicherweise zurückgegeben werden, finden Sie unter Framework-Objekterstellungsfehler.
Diese Methode kann auch andere NTSTATUS-Wertezurückgeben.
Bemerkungen
Ein Treiber ruft in der Regel WdfDpcCreate innerhalb seiner EvtDriverDeviceAdd Rückruffunktion auf.
Wenn ein Treiber ein DPC-Objekt erstellt, muss es ein übergeordnetes Objekt im ParentObject Member der WDF_OBJECT_ATTRIBUTES Struktur angeben. Das übergeordnete Objekt kann ein Framework-Geräteobjekt oder ein objekt sein, dessen Übergeordnete Kette zu einem Framework-Geräteobjekt führt. Das Framework löscht das DPC-Objekt, wenn es das Geräteobjekt löscht.
Durch Aufrufen WdfDpcCreate wird ein DPC-Frameworkobjekt erstellt und ein EvtDpcFunc Rückruffunktion registriert. Um die Ausführung der Rückruffunktion zu planen, muss der Treiber WdfDpcEnqueueaufrufen.
Wenn Ihr Treiber EvtCleanupCallback oder EvtDestroyCallback- Rückruffunktionen für das Framework-Timerobjekt bereitstellt, beachten Sie, dass das Framework diese Rückruffunktionen bei IRQL = PASSIVE_LEVEL aufruft.
Weitere Informationen zur Verwendung von DPC-Objekten finden Sie unter Servicing an Interrupt.
Beispiele
Im folgenden Codebeispiel wird eine WDF_DPC_CONFIG_INIT Struktur initialisiert und anschließend ein DPC-Objekt erstellt.
WDF_DPC_CONFIG dpcConfig;
WDF_OBJECT_ATTRIBUTES dpcAttributes;
NTSTATUS status;
WDF_DPC_CONFIG_INIT(
&dpcConfig,
MyEvtDpcFunc
);
dpcConfig.AutomaticSerialization = TRUE;
WDF_OBJECT_ATTRIBUTES_INIT(&dpcAttributes);
dpcAttributes.ParentObject = pDevExt->WdfDevice;
status = WdfDpcCreate(
&dpcConfig,
&dpcAttributes,
&pDevExt->CompleteWriteDpc
);
if (!NT_SUCCESS(status)) {
return status;
}
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform | universell |
| Minimale KMDF-Version | 1.0 |
| Kopfzeile | wdfdpc.h (enthalten Wdf.h) |
| Bibliothek | Wdf01000.sys (siehe Framework-Bibliotheksversionsverwaltung.) |
| IRQL | <=DISPATCH_LEVEL |
| DDI-Complianceregeln | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |