D3DKMT_VIDMM_ESCAPE 구조체(d3dkmthk.h)

D3DKMT_VIDMM_ESCAPE 구조를 사용하지 마세요. 테스트 목적으로만 사용됩니다.

D3DKMT_VIDMM_ESCAPE 구조체는 D3DKMTEscape 함수 호출에서 비디오 메모리 관리자(Dxgkrnl.sys 일부)를 제어하는 방법을 설명합니다.

구문

typedef struct _D3DKMT_VIDMM_ESCAPE {
  D3DKMT_VIDMMESCAPETYPE Type;
  union {
    struct {
      union {
        struct {
          ULONG ProbeAndLock : 1;
          ULONG SplitPoint : 1;
          ULONG NoDemotion : 1;
          ULONG SwizzlingAperture : 1;
          ULONG PagingPathLockSubRange : 1;
          ULONG PagingPathLockMinRange : 1;
          ULONG ComplexLock : 1;
          ULONG FailVARotation : 1;
          ULONG NoWriteCombined : 1;
          ULONG NoPrePatching : 1;
          ULONG AlwaysRepatch : 1;
          ULONG ExpectPreparationFailure : 1;
          ULONG FailUserModeVAMapping : 1;
          ULONG NeverDiscardOfferedAllocation : 1;
          ULONG AlwaysDiscardOfferedAllocation : 1;
#if ...
          ULONG Reserved : 17;
#else
          ULONG Reserved : 19;
#endif
        };
        ULONG Value;
      };
    } SetFault;
    struct {
      D3DKMT_HANDLE ResourceHandle;
      D3DKMT_HANDLE AllocationHandle;
      void          D3DKMT_PTR(
    HANDLE   unnamedParam1,
    hProcess unnamedParam2
  );
    } Evict;
    struct {
      D3DKMT_ALIGN64 UINT64 NtHandle;
    } EvictByNtHandle;
    struct {
      union {
        struct {
          UINT NumVads;
        } GetNumVads;
        D3DKMT_VAD_DESC         GetVad;
        D3DKMT_VA_RANGE_DESC    GetVadRange;
        D3DKMT_GET_GPUMMU_CAPS  GetGpuMmuCaps;
        D3DKMT_GET_PTE          GetPte;
        D3DKMT_GET_SEGMENT_CAPS GetSegmentCaps;
      };
      D3DKMT_VAD_ESCAPE_COMMAND Command;
      NTSTATUS                  Status;
      union {
        D3DKMT_GET_PTE_EXT GetPteExt;
      };
    } GetVads;
    struct {
      D3DKMT_ALIGN64 ULONGLONG LocalMemoryBudget;
      D3DKMT_ALIGN64 ULONGLONG SystemMemoryBudget;
    } SetBudget;
    struct {
      void D3DKMT_PTR(
    HANDLE   unnamedParam1,
    hProcess unnamedParam2
  );
      BOOL bAllowWakeOnSubmission;
    } SuspendProcess;
    struct {
      void D3DKMT_PTR(
    HANDLE   unnamedParam1,
    hProcess unnamedParam2
  );
    } ResumeProcess;
    struct {
      D3DKMT_ALIGN64 UINT64 NumBytesToTrim;
    } GetBudget;
    struct {
      ULONG MinTrimInterval;
      ULONG MaxTrimInterval;
      ULONG IdleTrimInterval;
    } SetTrimIntervals;
    D3DKMT_EVICTION_CRITERIA EvictByCriteria;
    struct {
      BOOL bFlush;
    } Wake;
    struct {
      D3DKMT_DEFRAG_ESCAPE_OPERATION Operation;
      UINT                           SegmentId;
      D3DKMT_ALIGN64 ULONGLONG       TotalCommitted;
      D3DKMT_ALIGN64 ULONGLONG       TotalFree;
      D3DKMT_ALIGN64 ULONGLONG       LargestGapBefore;
      D3DKMT_ALIGN64 ULONGLONG       LargestGapAfter;
    } Defrag;
    struct {
      D3DKMT_HANDLE            hPagingQueue;
      UINT                     PhysicalAdapterIndex;
      ULONG                    Milliseconds;
      D3DKMT_ALIGN64 ULONGLONG PagingFenceValue;
    } DelayExecution;
    struct {
      UINT16 PhysicalAdapterIndex;
      UINT16 SegmentId;
    } VerifyIntegrity;
    struct {
      D3DKMT_ALIGN64 LONGLONG TimerValue;
    } DelayedEvictionConfig;
  };
} D3DKMT_VIDMM_ESCAPE;

멤버

Type

SetFault

SplitPoin

HotAddMemory

SetFault.ProbeAndLock

SetFault.SplitPoint

SetFault.NoDemotion

SetFault.SwizzlingAperture

SetFault.PagingPathLockSubRange

SetFault.PagingPathLockMinRange

SetFault.ComplexLock

SetFault.FailVARotation

SetFault.NoWriteCombined

SetFault.NoPrePatching

SetFault.AlwaysRepatch

SetFault.ExpectPreparationFailure

SetFault.FailUserModeVAMapping

SetFault.NeverDiscardOfferedAllocation

SetFault.AlwaysDiscardOfferedAllocation

SetFault.Reserved

SetFault.Value

Evict

Evict.ResourceHandle

Evict.AllocationHandle

void D3DKMT_PTR( HANDLE unnamedParam1, hProcess unnamedParam2)

EvictByNtHandle

EvictByNtHandle.NtHandle

GetVads

GetVads.GetNumVads

GetVads.GetNumVads.NumVads

GetVads.GetVad

GetVads.GetVadRange

GetVads.GetGpuMmuCaps

GPU 메모리 관리 기능.

GetVads.GetPte

GetVads.GetSegmentCaps

GetVads.Command

GetVads.Status

GetVads.GetPteExt

SetBudget

SetBudget.LocalMemoryBudget

SetBudget.SystemMemoryBudget

SuspendProcess

SuspendProcess.bAllowWakeOnSubmission

ResumeProcess

GetBudget

GetBudget.NumBytesToTrim

SetTrimIntervals

SetTrimIntervals.MinTrimInterval

SetTrimIntervals.MaxTrimInterval

SetTrimIntervals.IdleTrimInterval

EvictByCriteria

Wake

Wake.bFlush

Defrag

Defrag.Operation

Defrag.SegmentId

Defrag.TotalCommitted

Defrag.TotalFree

Defrag.LargestGapBefore

Defrag.LargestGapAfter

DelayExecution

DelayExecution.hPagingQueue

DelayExecution.PhysicalAdapterIndex

DelayExecution.Milliseconds

DelayExecution.PagingFenceValue

VerifyIntegrity

VerifyIntegrity.PhysicalAdapterIndex

VerifyIntegrity.SegmentId

DelayedEvictionConfig

DelayedEvictionConfig.TimerValue

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
머리글 d3dkmthk.h(D3dkmthk.h 포함)

추가 정보

D3DKMTEscape

D3DKMT_ESCAPE