Skip to content

Latest commit

 

History

History
17 lines (9 loc) · 2.25 KB

handling-multiple-locks.md

File metadata and controls

17 lines (9 loc) · 2.25 KB
title description ms.date
Handling Multiple Locks
Handling Multiple Locks
04/20/2017

Handling Multiple Locks

With the Direct3D runtime, you can allow vertex and index buffers to have more than one lock outstanding. User-mode display drivers must handle multiple locks the same way as the runtime in the Windows 2000 Display Driver Model.

A user-mode display driver must not fail a call to its LockAsync function for a resource that is already locked. That is, the driver cannot fail any calls to its LockAsync function for a particular resource after the first call to its LockAsync function succeeds in locking that resource. Similarly, the driver cannot fail any calls to its Lock function for a particular resource after the first call to its Lock function succeeds in locking that resource. The runtime matches each call that it makes to the driver's LockAsync function with a call to the driver's UnlockAsync function. The runtime also matches each call that it makes to the driver's Lock function with a call to the driver's Unlock function.

The user-mode display driver cannot fail a call to its UnlockAsync function unless the resource that the D3DDDIARG_UNLOCKASYNC structure describes was not actually locked by a previous call to the driver's LockAsync function. Similarly, the driver cannot fail a call to its Unlock function unless the resource that the D3DDDIARG_UNLOCK structure describes was not actually locked by a previous call to the driver's Lock function. In situations in which the resources were not previously locked, UnlockAsync and Unlock return E_INVALIDARG.