Udostępnij przez


Segmenty Aperture-Space liniowe

Liniowy segment przestrzeni przysłony jest podobny do liniowego segmentu przestrzeni pamięci. Jednak segment przestrzeni apertury jest tylko przestrzenią adresową i nie może przechowywać bitów.

Aby przechowywać bity, należy przydzielić strony pamięci systemowej, a zakres przestrzeni adresowej musi zostać przekierowany w celu odwoływania się do tych stron. Sterownik miniportu wyświetlania w trybie jądra (KMD) musi zaimplementować funkcję DxgkDdiBuildPagingBuffer dla DXGK_OPERATION_MAP_APERTURE_SEGMENT i DXGK_OPERATION_UNMAP_APERTURE_SEGMENT typów operacji, aby obsłużyć przekierowanie i musi uwidocznić tę funkcję zgodnie z opisem w DriverEntry sterownika Display Miniport Driver. Dxgkrnl wywołuje DxgkDdiBuildPagingBuffer z zakresem przestrzeni adresowej do przekierowania i MDL odwołującym się do przydzielonych stron pamięci systemu fizycznego.

KMD zazwyczaj realizuje przekierowanie zakresu przestrzeni adresowej poprzez programowanie tabeli stron, która jest nieznana menedżerowi pamięci wideo (VidMm).

Sterownik musi ustawić flagę pola bitowego Aperture w elemencie Flags struktury DXGK_SEGMENTDESCRIPTOR, aby określić liniowy segment przestrzeni apertury. Sterownik może również ustawić następujące flagi pól bitowych, aby wskazać inną obsługę segmentów:

  • CpuVisible wskazuje, że segment jest dostępny dla CPU.

  • CacheCoherent wskazuje, że segment utrzymuje współistnienie pamięci podręcznej z procesorem CPU dla stron, do których segment przekierowuje.

Na poniższej ilustracji przedstawiono wizualną reprezentację liniowego segmentu przestrzeni przysłony.

Diagram ilustrujący liniowy segment przestrzeni przysłony.