Udostępnij za pośrednictwem


makro WDF_DECLARE_CONTEXT_TYPE_WITH_NAME

[Dotyczy usług KMDF i UMDF]

Makro WDF_DECLARE_CONTEXT_TYPE_WITH_NAME tworzy metodę dostępu o określonej nazwie dla przestrzeni kontekstowej specyficznej dla obiektu sterownika.

Składnia

void WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(
    _contexttype,
    _castingfunction
);

Parametry

_contexttype
Nazwa typu struktury struktury struktury zdefiniowanej przez sterownik, która opisuje zawartość przestrzeni kontekstowej obiektu.

_castingfunction
Nazwa procedury języka C. Makro używa tej nazwy jako nazwy metody dostępu tworzonej dla przestrzeni kontekstowej obiektu.

Wartość zwracana

To makro nie zwraca wartości.

Uwagi

Aby uzyskać więcej informacji na temat korzystania z tego makra, zobacz Framework Object Context Space.

Przykłady

Poniższy przykład kodu definiuje strukturę kontekstu (MY_REQUEST_CONTEXT) dla obiektu żądania. Następnie przykład wywołuje makro WDF_DECLARE_CONTEXT_TYPE_WITH_NAME, aby zarejestrować strukturę i określić, że metoda dostępu kontekstu będzie mieć nazwę RequestGetMyContext.

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)

Poniższy przykład kodu tworzy obiekt żądania, a następnie używa metody dostępu RequestGetMyContext w celu uzyskania wskaźnika do przestrzeni kontekstowej obiektu.

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);

Wymagania

Platforma docelowa

universal

Minimalna wersja usługi KMDF

1.0

Minimalna wersja UMDF

2.0

Nagłówek

Wdfobject.h (w tym Wdf.h)

Zobacz też

WdfObjectGetTypedContext

WDF_DECLARE_CONTEXT_TYPE