Я немного неясен, как именно эти объекты функционируют, образуя мосты между программным обеспечением и оборудованием. Являются ли они в значительной степени просто объектами программного обеспечения, которые уничтожаются, если вы просачиваете их в кучу, когда вы завершаете процесс? Или есть что-то еще?Что происходит, когда вы протекаете «устройство» и «контекст устройства» - в частности, d3d?
Причина, по которой я спрашиваю, я забыл, что моя инициализационная процедура изменила его statemachine и, следовательно, включила процедуры, в результате чего она создала как можно больше «DeviceContexts» и «Devices» и переназначала их тем же указателям (через d3d11createdevice), прежде чем я поймал, что моя память протекает около 2 ГБ.
Тогда мне пришло в голову, что я действительно не понимаю, что значит не выпускать эти объекты. Есть ли у них аппаратный компонент, который должен быть обеспокоен, если бы эти объекты были пропущены, так что мне нужно перезагрузить компьютер? Или завершение процесса в значительной степени очищает беспорядок?
I холодный сброс моего компьютера независимо от того, чтобы быть уверенным. Но было бы хорошо знать, что происходит, когда вы используете интерфейсы низкого уровня, подобные этому, и вы не можете их правильно уничтожить/освободить.
Операционная система очищает все эти контексты устройства, когда ваша программа завершается. В противном случае неудачная программа может привести к остановке системы. – 1201ProgramAlarm
Так что мне действительно не нужно беспокоиться о причинении вреда аппарату каким-либо образом этим? Я знаю, что это может показаться глупым вопросом, но я действительно не понимаю драйверов устройств. – ThisHandleNotInUse
Вы не сможете повредить аппаратное обеспечение, используя их, и вам не нужно беспокоиться об этом. – 1201ProgramAlarm