private void closeHandle(HandleOperationRequest request) { this.kernelStorage.channelDevice.storage = 1; Handle handle = this.kernelStorage.handles[request.handle]; this.kernelStorage.handles.remove(handle); if (handle is Battery) { this.kernelStorage.channelDevice.battery = 0; } Resource response = new HandleOperationResponse(this.id, HandleOperationType.Close, request.createdByProcess); this.kernelStorage.channelDevice.storage = 0; kernelStorage.resources.add(response); request.release(); }
private void deleteHandle(HandleOperationRequest request) { this.kernelStorage.channelDevice.storage = 1; Handle handle = this.kernelStorage.handles[request.handle]; if (handle.GetType() != typeof(FileHandle)) { throw new Exception("Only file handles can be deleted"); } FileHandle file = (FileHandle)handle; string fileName = file.fileName; this.kernelStorage.handles.remove(handle); StorageFile.DeleteFile(this.kernelStorage.virtualHdd, fileName); Resource response = new HandleOperationResponse(this.id, HandleOperationType.Delete, request.createdByProcess); this.kernelStorage.channelDevice.storage = 0; kernelStorage.resources.add(response); request.release(); }