Udostępnij przez


Wprowadzenie do obiektów frameworku

Interfejsy zapewniane przez struktury sterowników systemu Windows (WDF) są oparte na obiektach. Struktura definiuje kilka obiektów. Te obiekty eksportują metody (funkcje) i właściwości (dane), do których mogą uzyskiwać dostęp sterowniki. Obiekty struktury inicjują również zdarzenia, które sterowniki mogą obsługiwać, udostępniając funkcje wywołania zwrotnego zdarzeń.

Sterowniki oparte na strukturze nigdy nie mają bezpośredniego dostępu do obiektów struktury. Zamiast tego sterowniki odwołują się do obiektów za pomocą uchwytów, które sterownik przekazuje jako dane wejściowe do metod obiektów.

Wszystkie obiekty struktury mają następujące cechy:

Licznik referencji
Struktura utrzymuje liczbę odwołań do każdego obiektu. Gdy struktura tworzy obiekt, ustawia liczbę odwołań do obiektu na jeden. Po zakończeniu korzystania z obiektu struktura dekrementuje liczbę odwołań. Struktura nie może usunąć obiektu, dopóki liczba odwołań nie zostanie zdekrementowana do zera, dlatego sterowniki mogą zapobiec usunięciu obiektu przez zwiększanie liczby odwołań.

Przestrzeń kontekstowa
Sterowniki oparte na strukturze mogą tworzyć przestrzeń kontekstową specyficzną dla każdego obiektu struktury, który sterownik odbiera lub tworzy. Sterowniki powinny przechowywać wszystkie dane specyficzne dla obiektu w przestrzeni kontekstowej obiektu. Aby uzyskać więcej informacji na temat przestrzeni kontekstowej, zobacz Framework Object Context Space.

Funkcje usuwania wywołań zwrotnych
Sterowniki mogą rejestrować funkcje wywołania zwrotnego, które platforma wywołuje podczas usuwania obiektu. Funkcje wywołania zwrotnego mogą usuwać zasoby przypisane przez sterownik, takie jak alokacje pamięci specyficzne dla obiektu. Aby uzyskać więcej informacji na temat tych funkcji wywołania zwrotnego, zobacz Framework Object Life Cycle (Cykl życia obiektu struktury).

Obiekt nadrzędny
Wszystkie obiekty struktury mogą mieć obiekt nadrzędny. Struktura wyznacza domyślny obiekt nadrzędny dla większości obiektów. Gdy sterownik tworzy obiekt, może wyznaczyć obiekt nadrzędny, który zastępuje domyślny obiekt nadrzędny obiektu. Aby wyznaczyć nadrzędny obiekt dla obiektu, sterowniki ustawiają człon ParentObject w strukturze WDF_OBJECT_ATTRIBUTES obiektu. (W przypadku kilku typów obiektów sterowniki nie mogą zastąpić domyślnego obiektu nadrzędnego.) Gdy framework lub sterownik usuwa obiekt nadrzędny, framework usuwa również elementy podrzędne obiektu nadrzędnego.

Aby zapoznać się z omówieniem wszystkich obiektów zdefiniowanych przez usługę WDF, zobacz Podsumowanie obiektów struktury.