示例#1
0
BOOL
CNdasLogicalDevice::IsVolatile()
{
	ximeta::CAutoLock autolock(this);

	DWORD nUnitDevices = GetUnitDeviceCount();
	for (DWORD i = 0; i < nUnitDevices; ++i)
	{
		CRefObjPtr<CNdasUnitDevice> pUnitDevice = GetUnitDevice(i);
		// Unit Device can be null
		if (NULL == pUnitDevice.p) continue;

		CRefObjPtr<CNdasDevice> pDevice = pUnitDevice->GetParentDevice();
		// If unit device is not null, parent device cannot be null
		_ASSERTE(NULL != pDevice.p);

		if (pDevice->IsVolatile())
		{
			// If any single device is volatile, then it's volatile.
			return TRUE;
		}
	}
	// Otherwise, we don't consider it volatile.
	return FALSE;
}