Freigeben über


WDF_DECLARE_CONTEXT_TYPE_WITH_NAME Makro

[Gilt für KMDF und UMDF]

Das WDF_DECLARE_CONTEXT_TYPE_WITH_NAME Makro erstellt eine Accessormethode mit einem angegebenen Namen für den objektspezifischen Kontextbereich eines Treibers.

Syntax

void WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(
    _contexttype,
    _castingfunction
);

Die Parameter

_contexttype
Der Strukturtypname einer treiberdefinierten Struktur, die den Inhalt des Kontextbereichs eines Objekts beschreibt.

_castingfunction
Ein C-Language-Routinename. Das Makro verwendet diesen Namen als Namen für die Accessormethode, die für den Kontextbereich des Objekts erstellt wird.

Rückgabewert

Dieses Makro gibt keinen Wert zurück.

Bemerkungen

Weitere Informationen zur Verwendung dieses Makros finden Sie unter Framework Object Context Space.

Beispiele

Im folgenden Codebeispiel wird eine Kontextstruktur (MY_REQUEST_CONTEXT) für ein Anforderungsobjekt definiert. Anschließend ruft das Beispiel das WDF_DECLARE_CONTEXT_TYPE_WITH_NAME Makro auf, um die Struktur zu registrieren und anzugeben, dass die Kontextaccessormethode RequestGetMyContext-benannt wird.

typedef struct _MY_REQUEST_CONTEXT {
  LIST_ENTRY ListEntry;
  WDFMEMORY Memory;
} MY_REQUEST_CONTEXT, *PMY_REQUEST_CONTEXT;

WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(MY_REQUEST_CONTEXT, RequestGetMyContext)

Im folgenden Codebeispiel wird ein Anforderungsobjekt erstellt und anschließend die RequestGetMyContext- Accessormethode verwendet, um einen Zeiger auf den Kontextbereich des Objekts abzurufen.

WDFREQUEST Request;
WDF_OBJECT_ATTRIBUTES MyRequestObjectAttributes;
PMY_REQUEST_CONTEXT pMyContext;

WDF_OBJECT_ATTRIBUTES_INIT(&MyRequestObjectAttributes);
WDF_OBJECT_ATTRIBUTES_SET_CONTEXT_TYPE(
                                       &MyRequestObjectAttributes,
                                       MY_REQUEST_CONTEXT
                                       );
status = WdfRequestCreate(
                          &MyRequestObjectAttributes
                          NULL,
                          &Request
                          );

if (!NT_SUCCESS(status)) {
    return status;
}

pMyContext = RequestGetMyContext(Request);

Anforderungen

Zielplattform

universelle

Minimale KMDF-Version

1.0

Minimale UMDF-Version

2.0

Kopfzeile

Wdfobject.h (enthalten Wdf.h)

Siehe auch

WdfObjectGetTypedContext-

WDF_DECLARE_CONTEXT_TYPE