DXGKARG_CANCELCOMMAND structure (d3dkmddi.h)

Specifies internal resources that are cleaned up by the DxgkDdiCancelCommand function after a command is removed from the hardware queue.

Syntax

typedef struct _DXGKARG_CANCELCOMMAND {
  [in]  HANDLE                         hContext;
  [out] VOID                           *pDmaBuffer;
  [in]  UINT                           DmaBufferSize;
  [in]  UINT                           DmaBufferSubmissionStartOffset;
  [in]  UINT                           DmaBufferSubmissionEndOffset;
  [in]  VOID                           *pDmaBufferPrivateData;
  [in]  UINT                           DmaBufferPrivateDataSize;
  [in]  UINT                           DmaBufferPrivateDataSubmissionStartOffset;
  [in]  UINT                           DmaBufferPrivateDataSubmissionEndOffset;
  [in]  const DXGK_ALLOCATIONLIST      *pAllocationList;
  [in]  UINT                           AllocationListSize;
  [in]  const D3DDDI_PATCHLOCATIONLIST *pPatchLocationList;
  [in]  UINT                           PatchLocationListSize;
  [in]  UINT                           PatchLocationListSubmissionStart;
  [in]  UINT                           PatchLocationListSubmissionLength;
        D3DGPU_VIRTUAL_ADDRESS         DmaBufferVirtualAddress;
        UINT                           DmaBufferUmdPrivateDataSize;
} DXGKARG_CANCELCOMMAND;

Members

[in] hContext

If the driver is multiple-engine aware (that is, the driver supports context creation), a handle to the device context that the cancel request originated from.

For some paging operations, hContext is NULL (for example, paging operations that evict the content of the entire frame buffer during power management). Paging operations are indicated by the Paging bit-field flag in the Flags member.

[out] pDmaBuffer

A pointer to the start of the DMA buffer, which is aligned on 4 KB.

[in] DmaBufferSize

The size, in bytes, of the DMA buffer that pDmaBuffer points to.

[in] DmaBufferSubmissionStartOffset

The offset, in bytes, from the beginning of the DMA buffer that pDmaBuffer specifies to the start of the portion of the DMA buffer that requires canceling. The offset that is received at patch time matches the offset that is received at submission time.

[in] DmaBufferSubmissionEndOffset

The offset, in bytes, from the beginning of the DMA buffer that pDmaBuffer specifies to the end of the portion of the DMA buffer that requires canceling.

[in] pDmaBufferPrivateData

A pointer to the driver-resident private data that is associated with the DMA buffer that pDmaBuffer points to.

[in] DmaBufferPrivateDataSize

The size, in bytes, of the private driver data at pDmaBufferPrivateData.

Note that DmaBufferPrivateDataSize represents the entire length of the private driver data buffer; however, the portion that is associated with the current cancellation request might be smaller.

[in] DmaBufferPrivateDataSubmissionStartOffset

The offset, in bytes, from the beginning of the DMA buffer private data that pDmaBufferPrivateData specifies to the start of the portion of the private data that is associated with the current cancellation request.

[in] DmaBufferPrivateDataSubmissionEndOffset

The offset, in bytes, from the beginning of the DMA buffer private data that pDmaBufferPrivateData specifies to the end of the portion of the private data that is associated with the current cancellation request.

[in] pAllocationList

A pointer to an array of DXGK_ALLOCATIONLIST structures for the list of allocations that is associated with the DMA buffer that pDmaBuffer points to.

[in] AllocationListSize

The number of elements in the array that pAllocationList specifies.

Note that AllocationListSize represents the total size of the allocation list; however, the portion of the allocation list that is associated with the current cancellation request might be smaller.

[in] pPatchLocationList

A pointer to an array of D3DDDI_PATCHLOCATIONLIST structures for the list of patch locations that is associated with the DMA buffer that pDmaBuffer points to.

Note that the array can begin with an element that is before the range that is used to patch the DMA buffer.

[in] PatchLocationListSize

The number of elements in the array that pPatchLocationList specifies.

Note that PatchLocationListSize represents the total size of the patch-location list; however, the range that the driver must process is typically smaller.

[in] PatchLocationListSubmissionStart

The index of the first element in the patch-location list that pPatchLocationList specifies that must be processed.

[in] PatchLocationListSubmissionLength

The number of elements in the patch-location list that pPatchLocationList specifies that must be processed.

DmaBufferVirtualAddress

DmaBufferUmdPrivateDataSize

Requirements

Requirement Value
Minimum supported client Windows 8
Minimum supported server Windows Server 2012
Header d3dkmddi.h

See also

D3DDDI_PATCHLOCATIONLIST

DXGK_ALLOCATIONLIST

DxgkDdiCancelCommand

DxgkDdiCreateContext