Compartilhar via


Manipulando vários bloqueios

Com o runtime do Direct3D, você pode permitir que buffers de vértice e índice tenham mais de um bloqueio pendente. Os drivers de exibição no modo de usuário devem lidar com vários bloqueios da mesma forma que o runtime no Modelo de Driver de Exibição do Windows 2000.

Um driver de exibição no modo de usuário não deve falhar em uma chamada para sua função LockAsync para um recurso que já está bloqueado. Ou seja, o driver não pode falhar em nenhuma chamada para sua função LockAsync para um recurso específico depois que a primeira chamada para sua função LockAsync for bem-sucedida no bloqueio desse recurso. Da mesma forma, o driver não pode falhar em nenhuma chamada à função Lock para um recurso específico depois que a primeira chamada à função Lock for bem-sucedida no bloqueio desse recurso. O runtime corresponde a cada chamada feita à função LockAsync do driver com uma chamada para a função UnlockAsync do driver. O runtime também corresponde a cada chamada feita à função Lock do driver com uma chamada para a função Desbloqueio do driver.

O driver de exibição do modo de usuário não pode falhar em uma chamada para sua função UnlockAsync , a menos que o recurso que a estrutura D3DDDIARG_UNLOCKASYNC descreve não tenha sido realmente bloqueado por uma chamada anterior para a função LockAsync do driver. Da mesma forma, o driver não pode falhar em uma chamada para sua função Desbloquear , a menos que o recurso que a estrutura D3DDDIARG_UNLOCK descreve não tenha sido realmente bloqueado por uma chamada anterior para a função Lock do driver. Em situações em que os recursos não foram bloqueados anteriormente, UnlockAsync e Unlock retornam E_INVALIDARG.